在Java中运行.jar

时间:2012-12-03 10:32:16

标签: java exception jar

我想在Java中运行.jar文件,但是我得到一个例外,它不起作用。在目录 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 个答案:

答案 0 :(得分:3)

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

e.g。 rt.exec("java -jar myjar.jar");

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

答案 1 :(得分: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,说你给它一个罐子。如果Java在您的路径中(或在当前目录中),它应该可以工作。

答案 2 :(得分:1)

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

Process p = rt.exec("java - jar C:\\Users\\Administrator\\Desktop\\apache-solr-4.0.0\\example\\start.jar");

答案 3 :(得分: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二进制文件的实际绝对路径。