【发布时间】:2012-09-14 15:24:54
【问题描述】:
我有一个需要运行 2 个参数的 perl 脚本。我目前正在使用 Ubuntu,我设法通过将目录更改为 perl 脚本所在的位置并编写来从终端执行 perl 脚本
perl tool.pl config=../mydefault.config file=../Test
但是,当我尝试从我的 java 程序运行 perl 脚本时(我使用的是 eclipse),它总是给我消息 Command Failure。这是代码:
Process process;
try {
process = Runtime.getRuntime().exec("perl /home/Leen/Desktop/Tools/bin/tool.pl config=../mydefault.config file=../Test");
process.waitFor();
if(process.exitValue() == 0) {
System.out.println("Command Successful");
} else {
System.out.println("Command Failure");
}
} catch(Exception e) {
System.out.println("Exception: "+ e.toString());
}
请问我的代码有什么问题?
【问题讨论】:
-
从终端运行时,您检查过命令的存在状态吗?
$?。您确定从 Java 代码中的正确目录运行它吗? -
exec 中的路径。功能似乎错误。在运行脚本之前打印输出 System.properties 并检查运行时环境。或者尝试使用绝对路径:我的意思是 /home/user/....