我需要的是运行一个jar文件,该文件位于我的java代码中的另一个jar文件中。 我有这个turnOffClient.jar文件,我把它放在我的ChatSystemClient.jar文件中,我想要做的是从xClient.jar主类代码执行(启动,运行)turnOffClient.jar文件。 我试过了:
Runtime.getRuntime().exec(this.getClass().getResource("/jars/TurnOffClient.jar").toString());
此外:
TurnOffClient.main(args);
它似乎工作,但当我关闭第一个Java应用程序时,第二个也关闭,我不想要。 我的目录: https://imagizer.imageshack.us/v2/253x254q90/856/ztuz.png
答案 0 :(得分:2)
这是一个糟糕的编程习惯,而是创建一个调用两个程序的新类。
示例:
Program a;
Program b;
a.run();
while(a.isAlive()){
if( /*we need to run program b*/){
b.run();
break;
}
}
答案 1 :(得分:0)
这些图形应用程序?您可以在“关闭”时使应用程序 A (打开应用程序 B 的应用程序)非真正关闭,但在应用程序 B之前继续在后台运行实际上是关闭的。
当启动 B 时,JVM只是从B实例化一个特殊类(称之为BMain
)并调用其public void main(String[] args)
方法。没有理由不能直接从您自己的代码中调用该方法(而不是通过getRuntime().exec()
):
BMain.main("my arguments here");
如果您的 A 进程在其窗口关闭时没有立即结束(追捕并消除 A 中的所有JFrame.EXIT_ON_CLOSE
个实例,假设您使用的是Swing ),如上所述,它会调用 B 的主要内容,即使 A “已关闭”, B 也会正常运行。