java app在没有从命令行运行时挂起

时间:2012-02-18 08:20:36

标签: java windows

在Windows 7中,当我双击.jar文件时,应用程序会部分运行然后挂起。在命令行上使用java -jar MyFile.jar javaw -jar MyFile.jar运行时,它运行得很好。当使用GUI运行它时,它在linux mint上运行良好。有什么办法可以调试吗? (最好使用eclipse)

修改

确定。我可能已经把它缩小了。当我写一个简单的测试应用程序时:

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会提醒我“无法找到主类:MyDebug。程序将退出。”

修改

我现在可能已经把它缩小了;从桌面启动时,使用32位版本的javaw,当从命令行启动时,使用64位版本。

解决 我通过转到控制面板中的程序和功能,卸载java并重新安装它来解决问题。虽然不能回答我自己的帖子

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

在Windows环境中

,检查java命令和javaw命令。双击jar文件时,javaw命令会运行jar文件。我想这可能是因为你安装了多个jre。

答案 2 :(得分:1)

尝试通过脚本启动..

echo "started from %cd%"
set scriptroot=%~dp0%

java -version
echo %path%

java -jar %scriptroot%\MyFile.jar

echo "press any key  to continue"
pause 

然后返回java版本,异常等。