我想在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);
}
}
答案 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二进制文件的实际绝对路径。