Я пытаюсь запустить файл класса Java из другой программы Java.
Это моя программа:
import java.io.File;
import java.io.IOException;
import java.lang.ProcessBuilder.Redirect;
public class RunJava {
public static void main(String[] args) throws IOException {
ProcessBuilder pb = new ProcessBuilder("java","HelloWorld");
pb.directory(new File("/home/local/prasanth-8508"));
pb.redirectOutput(Redirect.INHERIT);
pb.redirectError(Redirect.INHERIT);
pb.start();
}
}
После запуска этой программы я получаю следующую ошибку:
Исключение в потоке "main" java.io.IOException: Невозможно запустить программу "java"
Но когда я запускаю любые команды java из моего терминала, они работают абсолютно нормально.
Еще одна вещь, которую я обнаружил, - когда я запускаю команду: echo $PATH
в моем терминале и с помощью ProcessBuilder (ProcessBuilder pb = new ProcessBuilder("bash","-c","echo $PATH");
), они показывают разные выходные данные. т.е. путь к jdk / bin не отображается в команде ProcessBuilder.
Как я могу решить эту проблему?