我有两个java Swing应用程序,我需要能够从第二个执行第一个。我已经将第一个编译成jar并将其放在第二个类路径中。我从应用程序调用第一个jar的主类,但我看到的只是一个空白框架。 我的第一个Jar的Main看起来像这样:
import java.awt.EventQueue;
import java.awt.Frame;
import javax.swing.JDialog;
public class AskulLibrary extends Frame implements Runnable{
final Frame frame;
public AskulLibrary(Frame frame) {
this.frame = frame;
}
public void run() {
frame.show();
}
public static void main(String[] args) {
JDialog.setDefaultLookAndFeelDecorated(true);
// Throw a nice little title page up on the screen first
new Splash().showSplash(3000);
EventQueue.invokeLater(new AskulLibrary(new JLibrary()));
}
}
我从第二个应用程序中调用此主类,如下所示:
import com.AskulLibrary;
import java.awt.Frame;
public class MainFrame extends JFrame{
AskulLibrary lib;
Frame frame;
public MainFrame(){
frame = new new Frame();
lib = new AskulLibrary (frame);
lib.run();
}
}
我在某处做错了,因为我没有初始化第一个Jar而是得到一个空框架。虽然这是成功运行第一个程序,但我不想像这样运行jar:
Runtime.getRuntime().exec("java -jar lib/Myfirstjar.jar");
答案 0 :(得分:2)
为什么不在官方API中使用已实现的方法,How to Create a Splash Screen
(在官方API中实施Splash Screen
之前)使用JWindow
/ JDialog
但不使用Runnable#Thread
,请使用描述{{1}的非常严格的逻辑而在InitialThread代替Top-Level Containers
查看我的question about reverse order, similair, but with interactive logics,