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:
Jason Tedor 2015-11-10 14:56:45 -05:00
parent 6e18702ddb
commit ebd8bbcffe
1 changed files with 9 additions and 2 deletions

View File

@ -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) {