2013-03-13 42 views
0

我创建一个Java项目,当我从Eclipse的执行我的应用程序它的工作没有任何问题,没有异常。我创建了一个罐子来执行它的工作原理是我用于发展的计算机上,我试图在另一台PC,它只有当我在CMD执行java-jar program.jar工作。 我试图用我的jar使用jarBundler创建一个应用程序mac(.app)。但问题是,当我运行它的应用程序时,它不会停止。事实上,我的一个按钮执行一个脚本,并在执行结束时停止执行。启动脚本的mac应用程序不会停止,如果我在终端中尝试我的脚本,它将与它工作的jar一起工作。我不知道有什么问题以及如何检测它。如何使用jar创建一个mac应用程序?

回答

0

尝试登录合并(调试)消息到你的代码(尤其是预期的,这不是结束执行的方法)。跟踪对方法执行至关重要的所有对象的状态,并比较不同环境下的结果。

如果您正在使用多个线程,添加日志来跟踪它们的状态,并确保他们最终如预期,并且没有死锁。

关于环境的差异(不同的操作系统和控制台/ UI执行),检查 所有Java特定的环境变量,这将是JAVA_HOME,JAVA_OPTS等 有可能(尽管可能性很小),你的UI和控制台用户正在使用不同的环境。变量。

+0

我已经取回我的脚本执行的结果,我用它作为一个日志,但在脚本没有完成,不使其退出代码,我的日志文件是空的。当我在手机上检查安装过程时,我使用我的代码来安装apk安卓手机,应用程序已经安装,然后执行脚本,但它不停止。 – user2043602 2013-03-13 09:52:57

+0

我如何检查所有使用的线程? – user2043602 2013-03-13 09:53:45

+0

我很困惑,你提到了Mac和控制台,但现在有一个Android手机?也许尝试在WHILE循环中登录并查看它何时挂起。如果你在手机上运行它,你可以在Eclipse中检查DDMS中的所有线程。否则,你可以看看jconsole。 – hovanessyan 2013-03-13 10:04:08

-1

如果脚本停止不MAC工作比你可以作出一些代码的变化,写了近脚本,因为它既能平台上工作。

在情况下,如果不是你写不同的脚本收盘Mac等操作系统,所以首先你的代码用于通过根据OS macthing通过代码识别操作系统比运行代码无法得到这样的代码。

专有操作系统一样:

public static boolean isWindows() { 

     String os = System.getProperty("os.name").toLowerCase(); 
     // windows 
     return (os.indexOf("win") >= 0); 

    } 

    public static boolean isMac() { 

     String os = System.getProperty("os.name").toLowerCase(); 
     // Mac 
     return (os.indexOf("mac") >= 0); 

    } 

u能clearify关于关闭脚本。这将有帮助..

--Om--

相关问题