Java Web Start小程序/应用程序中的InvocationTargetException

Java Web Start小程序/应用程序中的InvocationTargetException,java,applet,java-web-start,invocationtargetexception,Java,Applet,Java Web Start,Invocationtargetexception,作为参考,我之前问了一个关于将Java应用程序转换为小程序的错误的问题。好吧,有人建议我尝试JavaWebStart,但我仍然收到这种方式的问题,所以我决定创建一个新问题 以下是我提到的问题: 我假设我假设我有某种结构错误,关于如何设置JavaWebStart应用程序,因为我已经将我的代码作为jar文件在本地进行了测试,运行它时没有错误 以下是一个示例页面: 正如我们在上一个问题中讨论的那样,您的代码似乎有一个main(String[]args)。因此,它可能很简单,如更改: 使用Web St

作为参考,我之前问了一个关于将Java应用程序转换为小程序的错误的问题。好吧,有人建议我尝试JavaWebStart,但我仍然收到这种方式的问题,所以我决定创建一个新问题

以下是我提到的问题:

我假设我假设我有某种结构错误,关于如何设置JavaWebStart应用程序,因为我已经将我的代码作为jar文件在本地进行了测试,运行它时没有错误

以下是一个示例页面:

正如我们在上一个问题中讨论的那样,您的代码似乎有一个
main(String[]args)
。因此,它可能很简单,如更改:


使用Web Start启动小程序
福吧公司。
感谢你这么做
  • 应在EDT上创建和更新Swing GUI。有关更多详细信息,请参阅(特别是“初始线程”部分)
  • 这是一个基于帧的SSCCE


  • 异常的完整堆栈跟踪是什么?@andrewhompson我在另一个问题上发布的代码只是发布了,因为这有助于了解问题是什么。其他的课程都很好,我没有包括在内。实际编译的.class文件包含在jar中,尽管它是从我网站上的示例网页运行的。不管怎样,正如我对你的回答所作的评论,你已经解决了我的问题,所以希望你遇到的这个问题不再是什么大问题?@AndrewThompson在我之前的问题中,你在帮助我,代码是问题的焦点,因为我正试图将其转换为小程序。但是使用JavaWebStart是不同的,我的代码不应该引起这个问题。该代码以前作为一个应用程序进行过测试,运行良好,所以我猜它在这里也会很好。你发布的修改过的JNLP修复了这个问题!应用程序将打开,并按设想的方式运行!谢谢你的帮助,安德鲁!同样感谢在发布代码时使用SSCCE的建议,我一定会在以后的问题中尝试这样做!您使用我的代码给出的示例帮助我直观地了解您的意思,这非常有用!
    import java.awt.*;
    import javax.swing.*;
    
    public class MainGame {
        public static final String NAME = "Physics - Projectile Motion Example";
        public static final int HEIGHT = 160;
        public static final int WIDTH = HEIGHT * 16 / 9;
        public static final int SCALE = 4;
    
        public MainGame() {
            run();
        }
    
        public void run() {
            JFrame frame = new JFrame(MainGame.NAME);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLayout(new BorderLayout());
    
    
            JPanel options = new JPanel();
            options.add(new JLabel("Options"));
            JPanel game = new JPanel();
            game.add(new JLabel("Game"));
    
            frame.setSize(new Dimension ( WIDTH * SCALE, HEIGHT * SCALE ));
    
            frame.add(game, BorderLayout.CENTER);
            frame.add(options, BorderLayout.SOUTH);
            frame.setLocationRelativeTo(null);
            frame.setResizable(false);
            frame.setVisible(true);
        }
    
        public static void main(String[] args) {
            new MainGame();
        }
    }