外部程序执行

时间:2014-10-02 12:39:12

标签: java eclipse

我总是感激不尽。

如何启动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);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您正在致电Runtime.exec(String),分两步委托Runtime.exec(String[], String[], File),为第二和第三个参数生成null个。

这些是envpdir。从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);