在Java中运行.jar

在Java中运行.jar,java,exception,jar,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 =

我想在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);
    }
}

您需要在命令行中使用
java-jar
执行,否则就不会真正执行任何操作

e、 g.
rt.exec(“java-jar-myjar.jar”)


哦,你需要等待过程完成;否则,当它退出作用域时,可能会意外终止。

您需要在命令行中使用
java-jar执行,否则您不会真正执行任何操作

e、 g.
rt.exec(“java-jar-myjar.jar”)


哦,你需要等待过程完成;否则,当它退出作用域时,可能会意外终止。

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

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

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

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

试试这样的方法:

rt.exec("c:\\java_path\\bin\\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("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);
    }
}

确保将
c:\\java\u path\\bin\\java
替换为java二进制文件的实际绝对路径。

尝试以下方法:

rt.exec("c:\\java_path\\bin\\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("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);
    }
}

确保将
c:\\java\u path\\bin\\java
替换为java二进制文件的实际绝对路径。

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

试着这样做:

rt.exec("c:\\java_path\\bin\\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("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在您的路径中(或在当前目录中),它应该可以工作。

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

试着这样做:

rt.exec("c:\\java_path\\bin\\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("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在您的路径(或当前目录)中,它应该可以工作。

错误是什么?Post stacktrace..java.io.IOException:无法运行程序“C:\Users\Administrator\Desktop\apache-solr-4.0.0\example\start.jar”:CreateProcess error=193,%1不是java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)上的有效Win32应用程序。您应该将其作为java应用程序而不是.exe运行,错误是什么?Post stacktrace..java.io.IOException:无法运行程序“C:\Users\Administrator\Desktop\apache-solr-4.0.0\example\start.jar”:CreateProcess error=193,%1不是java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)上的有效Win32应用程序。您应该将其作为java应用程序运行,而不是作为.exe运行如果它没有引发异常,则是因为“java”找到了命令。启动应用程序时可能会发生异常。也有可能罐子不存在。我建议你在SO中运行这个命令,看看会发生什么。我对另一个jar文件使用这个命令,同样我没有得到异常,但应用程序不工作……如果它没有引发异常,那是因为找到了“java”命令。启动应用程序时可能会发生异常。也有可能罐子不存在。我建议您在SO中运行此命令,看看会发生什么。我将此命令用于另一个jar文件,同样,我没有得到异常,但应用程序无法工作。。。