使用开头的文件路径
/意味着您要从文件系统的根目录开始。
您的代码为我工作,只需删除该斜杠即可:
public static void main(String[] args) { try { File python = new File("scripts/script.py"); System.out.println(python.exists()); // true Runtime rt = Runtime.getRuntime(); Process pr = rt.exec("python scripts/script.py"); // print('Hello!') BufferedReader bfr = new BufferedReader(new InputStreamReader(pr.getInputStream())); String line = ""; while((line = bfr.readLine()) != null) System.out.println(line); } catch(Exception e) { System.out.println(e.toString()); }}// true// Hello!// Process finished with exit pre 0放置错误文件没有显示错误的原因是因为此Java代码仅显示输入流(
getInputStream()),而不显示错误流(
getErrorStream()):
public static void main(String[] args) { try { Runtime rt = Runtime.getRuntime(); Process pr = rt.exec("python scripts/doesnotexist.py"); BufferedReader bfr = new BufferedReader(new InputStreamReader(pr.getErrorStream())); String line = ""; while((line = bfr.readLine()) != null) System.out.println(line); } catch(Exception e) { System.out.println(e.toString()); }}// python: can't open file 'scripts/doesnotexist.py': [Errno 2] No such file or directory// Process finished with exit pre 0


