我总是感激不尽。
如何启动java的外部程序,但它不起作用。 在下面的程序中,虽然我会从命令行开始工作,但是,当我在eclipse上运行时它不起作用。 我出来的错误出现了,并且无法加载主类缺失或(エラー:メインクラスがみつからないかロードできません)。 怎么能在eclipse中运行外部程序呢? 请建议谢谢。
package test.jersey.resources;
public class Execute02 {
public static void main(String[] args) {
String filename = "C:\\Users\\omiz12032\\workspace3\\TestJavaServlet\\src\\test\\jersey\\resources\\start.bat";
try {
Process proc = Runtime.getRuntime().exec(filename);
System.out.println("実行中");
proc.waitFor();
System.out.println("実行終了");
} catch( Exception e ) {
System.out.println(e);
}
}
}
答案 0 :(得分:0)
您正在致电Runtime.exec(String)
,分两步委托Runtime.exec(String[], String[], File)
,为第二和第三个参数生成null
个。
这些是envp
和dir
。从Java进程继承envp
(也称为环境变量)应该不是问题。更大的问题是dir
,它是工作目录。如果您正在调用的.bat
文件编写得不好(未准备好在其目录之外执行),则在使用程序的工作目录时,它将无法解析其依赖关系。请尝试以下方法:
File workingDir = new File("C:\\Users\\omiz12032\\workspace3\\TestJavaServlet\\src\\test\\jersey\\resources");
// the no-array call of exec tokenizes your command which may lead to unexpected results if it contains spaces
// also you can put arguments here as well as separate array elements
String[] command = { "start.bat" }; // for example { "start.bat", "--fooBar" }
Process proc = Runtime.getRuntime().exec(command, null, workingDir);