Runtime.exec() 在尝试执行脚本时出现 java 问题,但某些命令有效
Runtime.exec() issues with java when attempting to execute scripts, but certain commands work
我试图让我的 java 程序使用
执行 python 脚本
import java.lang.Runtime;
public class test
{
public static void main(String[] args)
{
try
{
System.out.println("testing");
Runtime.getRuntime().exec("/usr/bin/python print.py");
}catch(Exception e){System.out.println("not working");}
}
}
但是,终端上没有显示任何内容(print.py 简单打印 "THIS IS WORKING")。与此相反,当我使用
Runtime.getRuntime().exec("touch dog.txt");
一个名为 dog.txt 的文件被创建。
我也尝试过 运行
Runtime.getRuntime()exec("./shellscript.sh");
这只是一个 运行 触摸命令的脚本,它也不起作用。
不太确定这里的问题是什么,更有趣的是,昨天 java 程序按预期运行,在此期间我的计算机没有发生大的变化。有人对发生的事情有任何想法吗?
我没有收到任何错误。
我猜你必须等到脚本执行结束。
try {
Process process = Runtime.getRuntime().exec("/usr/bin/python print.py");
process.waitFor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
您可以尝试从进程中读取 exitCode ;-)
好的,我最终通过使用
取得了成功
process p = Runtime.getRuntime().exec("./pyshellthing.sh");
p.waitFor();
shell 脚本只是执行 python 脚本。
我试图让我的 java 程序使用
执行 python 脚本import java.lang.Runtime;
public class test
{
public static void main(String[] args)
{
try
{
System.out.println("testing");
Runtime.getRuntime().exec("/usr/bin/python print.py");
}catch(Exception e){System.out.println("not working");}
}
}
但是,终端上没有显示任何内容(print.py 简单打印 "THIS IS WORKING")。与此相反,当我使用
Runtime.getRuntime().exec("touch dog.txt");
一个名为 dog.txt 的文件被创建。
我也尝试过 运行
Runtime.getRuntime()exec("./shellscript.sh");
这只是一个 运行 触摸命令的脚本,它也不起作用。
不太确定这里的问题是什么,更有趣的是,昨天 java 程序按预期运行,在此期间我的计算机没有发生大的变化。有人对发生的事情有任何想法吗?
我没有收到任何错误。
我猜你必须等到脚本执行结束。
try {
Process process = Runtime.getRuntime().exec("/usr/bin/python print.py");
process.waitFor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
您可以尝试从进程中读取 exitCode ;-)
好的,我最终通过使用
取得了成功process p = Runtime.getRuntime().exec("./pyshellthing.sh");
p.waitFor();
shell 脚本只是执行 python 脚本。