0

我想.jar在 Java 中运行一个文件,但是我得到一个异常并且它不起作用。在目录C:/Users/Administrator/Desktop/apache-solr-4.0.0/example中,我有一个名为start.jar的文件。我的最后一个例子是这个,但它抛出了一个异常。我必须做什么才能修复它?

public void runStart()  {
    try {
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar");
    } catch (IOException ex) {
        Logger.getLogger(SolrForm.class.getName()).log(Level.SEVERE, null, ex);
    }
}
4

4 回答 4

3

您需要在命令行中执行 with java -jar,否则您实际上并没有执行任何操作。

例如rt.exec("java -jar myjar.jar");

哦,需要等待该过程完成;否则它可能会在超出范围时意外终止。

于 2012-12-03T10:34:37.383 回答
2

当您尝试在控制台中运行该命令时,它也不起作用。jar 文件本身不是可执行文件,但它可以由 Java 执行。

尝试这样做:

public void runStart()  {
    try {
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("java -jar C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar");
    } catch (IOException ex) {
        Logger.getLogger(SolrForm.class.getName()).log(Level.SEVERE, null, ex);
    }
}

这样你启动Java,说你给它一个jar。如果 Java 在您的路径中(或在当前目录中),它应该可以工作。

于 2012-12-03T10:39:10.467 回答
1

您只传递一个文件,即可执行应用程序。假设您的 Java 环境已配置,您应该将您的行更改为:

Process p = rt.exec("java - jar C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar");
于 2012-12-03T10:35:13.583 回答
0

尝试这样的事情:

rt.exec("c:\\java_path\\bin\\java -jar C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar");

确保c:\\java_path\\bin\\java用您的实际绝对路径替换为 java 二进制文件。

于 2012-12-03T10:37:19.543 回答