Get correct jps path on Windows
This commit fixes an issue with the jps executable sometimes being available under jps.exe but not jps.
This commit is contained in:
parent
6e18702ddb
commit
ebd8bbcffe
|
@ -286,10 +286,13 @@ class ClusterFormationTasks {
|
|||
onlyIf { pidFile.exists() }
|
||||
// the pid file won't actually be read until execution time, since the read is wrapped within an inner closure of the GString
|
||||
ext.pid = "${ -> pidFile.getText('UTF-8').trim()}"
|
||||
File jps = Paths.get(Jvm.current().javaHome.toString(), "bin/jps").toFile()
|
||||
File jps = getJpsExecutableByName("jps")
|
||||
if (!jps.exists()) {
|
||||
jps = getJpsExecutableByName("jps.exe")
|
||||
if (!jps.exists()) {
|
||||
throw new GradleException("jps executable not found; ensure that you're running Gradle with the JDK rather than the JRE")
|
||||
}
|
||||
}
|
||||
commandLine jps, '-l'
|
||||
standardOutput = new ByteArrayOutputStream()
|
||||
doLast {
|
||||
|
@ -308,6 +311,10 @@ class ClusterFormationTasks {
|
|||
}
|
||||
}
|
||||
|
||||
private static File getJpsExecutableByName(String jpsExecutableName) {
|
||||
return Paths.get(Jvm.current().javaHome.toString(), "bin/" + jpsExecutableName).toFile()
|
||||
}
|
||||
|
||||
/** Adds a task to kill an elasticsearch node with the given pidfile */
|
||||
static Task configureStopTask(String name, Project project, Object depends, File pidFile) {
|
||||
return project.tasks.create(name: name, type: Exec, dependsOn: depends) {
|
||||
|
|
Loading…
Reference in New Issue