2016-09-05 2 views
0

Я пытаюсь запустить скрипт питона с помощью выполнения в Java, но команда не работает, я получил эту ошибку:Run питон файл из Java

Cannot run program "python": CreateProcess error=2, The system cannot find the file specified

Даже я установить переменную PATH с исполняемым файлом питон.

public void call(){ 

    String command= "python C:/Python27/lib2.py";  
    Process p = Runtime.getRuntime().exec(command); 

} 

PATH = "C:\Python27" 
+1

Можете ли вы запустить команду вручную из командной строки? Не могли бы вы показать нам свою «ПУТЬ»? –

+0

Убедитесь, что python находится в PATH, где вы используете сборку, или укажите абсолютный путь к исполняемому файлу python в задаче exec. Затем взгляните на [this] (https://bytes.com/topic/python/insights/949995-three-ways-run-python-programs-java) –

+0

Да, он отлично работает вручную из командной строки, я уже установите PATH, но ошибка все еще присутствует –

ответ

0

Посмотрите на ProcessBuilder. Пример кода показывает:

ProcessBuilder pb = 
    new ProcessBuilder("myCommand", "myArg1", "myArg2"); 
Map<String, String> env = pb.environment(); 
env.put("VAR1", "myValue"); 
env.remove("OTHERVAR"); 
env.put("VAR2", env.get("VAR1") + "suffix"); 
pb.directory(new File("myDir")); 
File log = new File("log"); 
pb.redirectErrorStream(true); 
pb.redirectOutput(Redirect.appendTo(log)); 
Process p = pb.start(); 
assert pb.redirectInput() == Redirect.PIPE; 
assert pb.redirectOutput().file() == log; 
assert p.getInputStream().read() == -1; 

Вы могли бы сделать env.put("PATH", "c://python/bin"); или везде, где ваша установка питона может быть найдена, чтобы убедиться, что питон находится в пути.

+0

та же проблема не может запустить программу "python" –

Смежные вопросы