Java应用程序不会从命令行运行时挂起

在Windows 7中,当我双击我的.jar文件时,应用程序部分运行,然后挂起。 当在命令行上使用java -jar MyFile.jarjavaw -jar MyFile.jar运行时,它运行的很好。 当使用GUI来运行它时,它也能在linux mint上正常运行。 有什么办法可以debugging吗? (最好使用eclipse)

编辑:

好。 我可能已经缩小了范围。 当我写一个简单的testing应用程序:

 import javax.swing.JOptionPane; public class MyDebug { private static void err(String message){ JOptionPane.showMessageDialog(null,message); } public static void main(String[] args){ err("test"); } 

该程序运行良好的命令行使用javaw,但是当试图从桌面执行java警告我说:“无法find主类:MyDebug。程序将退出”。

编辑:

我现在可能已经进一步缩小了范围。 从桌面启动时使用32位版本的javaw,从命令行启动时使用64位版本。

解决我通过控制面板中的程序和function解决了问题,卸载Java并重新安装它。 尽pipe如此,我还是不能回答自己的post

@本尼汉给了我一个好主意(+1)。 尝试从命令提示符运行javaw -jar MyFile.jar而不是java -jar MyFile.jar 。 我相信你的应用程序会挂起来,就像在你通过双击jar文件运行时一样。 在这种情况下,可能的原因是在程序中使用STDIN或STDOUT。 请记住:使用javaw时,它们不存在。

在你的Windows环境中,检查java命令和javaw命令。 双击jar文件时,javaw命令会运行jar文件。 我想这也许是因为你安装了多个jre。

尝试通过脚本启动..

 echo "started from %cd%" set scriptroot=%~dp0% java -version echo %path% java -jar %scriptroot%\MyFile.jar echo "press any key to continue" pause 

然后回来与Java版本,异常等