Мне нужно выполнить приложение Java, используя ProcessBuilder
. Мне также нужно использовать тот же исполняемый файл Java в вызываемом процессе, который используется вызывающим приложением.
Есть ли независимый от платформы способ получить текущий путь к исполняемому файлу Java и имя файла?
Я видел некоторые фрагменты кода, подобные этому:
public static boolean isWindows() {
return (System.getProperty("os.name").toLowerCase().indexOf("win") >= 0);
}
public static String getJavaExecutablePath() {
String executable = "java";
if (isWindows()) {
executable = executable + ".exe";
}
File path = new File(System.getProperty("java.home"), "/bin/" + executable);
return path.getAbsolutePath();
}
Приведенный выше код, вероятно, потребуется улучшить, чтобы использовать File.separator
.
Это все, что требуется, или есть что-то еще, например, чувствительность к регистру?
В идеале должна быть библиотека для получения пути ОС, но это, вероятно, вопрос для другого форума.