java程序在同一个jar中调用另一个程序时冻结

java程序在同一个jar中调用另一个程序时冻结,java,Java,我只是想把太空入侵者作为复活节彩蛋添加到我制作的程序中。 我找到了一个开源代码 游戏本身运行良好。然而,当我试图从程序中的一个按钮运行它时,它会使我的程序和游戏冻结。我只是把他的源代码添加到我的源代码中,所以它在同一个jar文件中 我试过两种方法来开始 java.awt.EventQueue.invokeLater(new Runnable() { public void run() { Game.main(null);

我只是想把太空入侵者作为复活节彩蛋添加到我制作的程序中。 我找到了一个开源代码

游戏本身运行良好。然而,当我试图从程序中的一个按钮运行它时,它会使我的程序和游戏冻结。我只是把他的源代码添加到我的源代码中,所以它在同一个jar文件中

我试过两种方法来开始

java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {         
                Game.main(null);
                }
        });           
        }

普通的老
Game.main(空)

我应该换个方式开始吗

public static void main() {  

        // Start the main game loop, note: this method will not
        // return until the game has finished running. Hence we are
        // using the actual main thread to run the game.    
        SpaceInvaders si = new SpaceInvaders();
        Thread SpaceInvaders = new Thread(si);
        SpaceInvaders.start();          
        }

    @Override
    public void run() {
        // TODO Auto-generated method stub
        new SpaceInvaders().gameLoop();
    }
}

只是需要为它创建自己的线程。

不,应该可以。检查main方法是否对使用null作为参数感到满意。有错误消息吗?如果我们不知道你在哪个环境中(比如知道你的应用程序是否有GUI),我们将无法帮助你。它确实启动了空间入侵者,但它们都冻结了。我在这两方面都有gui。就环境而言,它的Windows7带有Java7。游戏是否扩展了JFrame或其他东西?如果您可以访问游戏的主类,您是否可以不使用
newgame().setVisible(true)?试过了,但没用。启动程序实际上需要gameloop。我希望避免自己编写一个太空入侵者的程序,只想要一个简单的复活节彩蛋。有些东西卡住了,因为它们都在同一个jar中同时运行。