从Java应用程序调用类路径中的外部jar

从Java应用程序调用类路径中的外部jar,java,swing,Java,Swing,我有两个JavaSwing应用程序,我需要能够从第二个应用程序执行第一个应用程序。我已经将第一个编译成一个jar,并将它放在第二个的类路径中。我正在从应用程序调用第一个jar的主类,但我看到的只是一个空白帧。 我的第一个罐子的主要部分如下所示: import java.awt.EventQueue; import java.awt.Frame; import javax.swing.JDialog; public class AskulLibrary extends Frame implemen

我有两个JavaSwing应用程序,我需要能够从第二个应用程序执行第一个应用程序。我已经将第一个编译成一个jar,并将它放在第二个的类路径中。我正在从应用程序调用第一个jar的主类,但我看到的只是一个空白帧。 我的第一个罐子的主要部分如下所示:

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();

}

}
我从第二个应用程序调用这个主类,如下所示:

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");
  • 为什么不在官方API中使用实现的方法呢

  • (在官方API中实现
    启动屏幕之前)使用
    JWindow
    /
    JDialog
    ,但不使用
    Runnable#Thread
    ,而是使用中描述的关于
    事件调度线程的非常严格的逻辑,这两种方法都适用

  • 看我的

1)
frame=new-frame()。为了更快地获得更好的帮助,请发布一个。2) 为什么是AWT而不是Swing?关于放弃使用AWT组件的许多好理由,请参见上的回答。如果需要支持较旧的基于AWT的API,请参阅。