我试图从java代码执行.py文件.我将.py文件移动到我的java项目的默认目录中,并使用以下代码调用它:
String cmd = "python/";
String py = "file";
String run = "python " +cmd+ py + ".py";
System.out.println(run);
//Runtime.getRuntime().exec(run);
Process p = Runtime.getRuntime().exec("python file.py");
Run Code Online (Sandbox Code Playgroud)
使用变量运行,或者整个路径或"python file.py"我的代码正在运行,显示消息构建成功总时间0秒而不执行file.py. 我的问题在这里是什么?
Pra*_*eek 19
你也可以这样使用:
String command = "python /c start python path\to\script\script.py";
Process p = Runtime.getRuntime().exec(command + param );
Run Code Online (Sandbox Code Playgroud)
要么
String prg = "import sys";
BufferedWriter out = new BufferedWriter(new FileWriter("path/a.py"));
out.write(prg);
out.close();
Process p = Runtime.getRuntime().exec("python path/a.py");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String ret = in.readLine();
System.out.println("value is : "+ret);
Run Code Online (Sandbox Code Playgroud)
我相信我们可以使用ProcessBuilder
Runtime.getRuntime().exec("python "+cmd + py + ".py");
.....
//since exec has its own process we can use that
ProcessBuilder builder = new ProcessBuilder("python", py + ".py");
builder.directory(new File(cmd));
builder.redirectError();
....
Process newProcess = builder.start();
Run Code Online (Sandbox Code Playgroud)
小智 5
String command = "cmd /c python <command to execute or script to run>";
Process p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader bri = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader bre = new BufferedReader(new InputStreamReader(p.getErrorStream()));
String line;
while ((line = bri.readLine()) != null) {
System.out.println(line);
}
bri.close();
while ((line = bre.readLine()) != null) {
System.out.println(line);
}
bre.close();
p.waitFor();
System.out.println("Done.");
p.destroy();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
54474 次 |
最近记录: |