在 Java 程序中执行另一个 jar

2022-08-31 08:17:58

我写了几个简单的java应用程序,命名为A.jar,B.jar。

现在我想写一个GUI java程序,这样用户就可以按按钮A执行A.jar按钮B执行B.jar。

另外,我想在我的GUI程序中输出运行时进程详细信息。

有什么建议吗?


答案 1

如果我理解正确,似乎您希望从java GUI应用程序内部在单独的进程中运行jar。

为此,您可以使用:

// Run a java app in a separate system process
Process proc = Runtime.getRuntime().exec("java -jar A.jar");
// Then retreive the process output
InputStream in = proc.getInputStream();
InputStream err = proc.getErrorStream();

缓冲进程的输出始终是很好的做法。


答案 2

.jar不可执行。实例化类或调用任何静态方法。

编辑:在创建 JAR 时添加主类条目。

>p.mf(p.mf 的含量)

主类: pk.测试

>Test.java

package pk;
public class Test{
  public static void main(String []args){
    System.out.println("Hello from Test");
  }
}

使用进程类及其方法,

public class Exec
{
   public static void main(String []args) throws Exception
    {
        Process ps=Runtime.getRuntime().exec(new String[]{"java","-jar","A.jar"});
        ps.waitFor();
        java.io.InputStream is=ps.getInputStream();
        byte b[]=new byte[is.available()];
        is.read(b,0,b.length);
        System.out.println(new String(b));
    }
}

推荐