Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java应用程序在未从命令行运行时挂起_Java_Windows - Fatal编程技术网

java应用程序在未从命令行运行时挂起

java应用程序在未从命令行运行时挂起,java,windows,Java,Windows,在Windows7中,当我双击我的.jar文件时,应用程序会部分运行,然后挂起。在命令行上使用java-jar-MyFile.jar或javaw-jar-MyFile.jar运行时,它运行得很好。当使用GUI运行它时,它在LinuxMint上也可以正常运行。有什么方法可以调试这个吗?最好使用eclipse 编辑: 嗯。我可能把范围缩小了。当我编写一个简单的测试应用程序时: import javax.swing.JOptionPane; public class MyDebug { p

在Windows7中,当我双击我的.jar文件时,应用程序会部分运行,然后挂起。在命令行上使用java-jar-MyFile.jar或javaw-jar-MyFile.jar运行时,它运行得很好。当使用GUI运行它时,它在LinuxMint上也可以正常运行。有什么方法可以调试这个吗?最好使用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并重新安装,解决了这个问题。在windows环境中,请检查java命令和javaw命令,但仍无法回答我自己的帖子。双击jar文件时,javaw命令将运行jar文件。我想这可能是因为您安装了多个jre。

在windows环境中,请检查java命令和javaw命令。双击jar文件时,javaw命令将运行jar文件。我想可能是因为你安装了不止一个jre。

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

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

请尝试通过脚本启动

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

java -version
echo %path%

java -jar %scriptroot%\MyFile.jar

echo "press any key  to continue"
pause 

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

尝试通过脚本启动

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

java -version
echo %path%

java -jar %scriptroot%\MyFile.jar

echo "press any key  to continue"
pause 


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

双击并使用命令行运行相同的JRE吗?你看到任何例外吗?这是什么意思?哪一部分有效,哪一部分无效?你有日志文件吗?可能您可以在那里看到异常。@home我不知道不同的执行方式是否使用不同的JRE:s,如何检查?@user1143825据我所知,我没有$JAVA_home集,$PATH不包含指向JAVA可执行文件的路径。我通过进入控制面板\所有控制面板项目\系统->高级系统设置->环境变量来检查这一点;我是否忽略了什么?@remuladgryta,打开命令提示符并键入echo%PATH%end echo%JAVA_HOME%Do双击并运行相同的JRE命令行?你看到任何例外吗?这是什么意思?哪一部分有效,哪一部分无效?你有日志文件吗?可能您可以在那里看到异常。@home我不知道不同的执行方式是否使用不同的JRE:s,如何检查?@user1143825据我所知,我没有$JAVA_home集,$PATH不包含指向JAVA可执行文件的路径。我通过进入控制面板\所有控制面板项目\系统->高级系统设置->环境变量来检查这一点;我忽略了什么吗?@remuladgryta,打开命令提示符并键入echo%PATH%end echo%JAVA_HOME%I本例确实检查了您在这两种情况下使用的JRE。我想,伙计们可能是对的:可能您的PATH变量配置不正确,并且您的计算机上安装了多个JRE,在从命令提示符和单击运行时使用不同的JRE。如何检查在使用不同方法启动时使用的JRE?我在本例中确实检查了您在这两种方法中使用的JRE案例。我想,伙计们可能是对的:可能您的PATH变量配置不正确,并且您的计算机上安装了多个JRE,并且在从命令提示符和单击运行时使用不同的JRE。如何检查在使用不同方法启动时使用的JRE?您的脚本在@ehco off:started from下运行C:\Users\remuladgryta\Desktop java version 1.7.0_02 JavaTM SE运行时环境build 1.7.0_02-b13 java HotSpotTM 64位服务器VM build 22.0-b10,混合模式java-jar C:\Users\remuladgryta\Desktop\\MyFile.jar按任意键继续按任意键继续。它是用来调试的。用“java-jar”删除echo java-jar行中的echo。使用您的脚本,我没有任何异常,并且程序运行良好。您的脚本运行时使用@ehco off:started from C:\Users\remuladgryta\Desktop java version 1.7.0_02 JavaTM SE Ru
ntime环境构建1.7.0_02-b13 Java HotSpotTM 64位服务器VM构建22.0-b10,混合模式Java-jar C:\Users\remuladgryta\Desktop\\MyFile.jar按任意键继续按任意键继续。它是用来调试的。用“java-jar”删除echo java-jar行中的echo。使用您的脚本,我没有任何异常,程序运行良好。我计算了同样多的代码,并对使用它们的任何代码行进行了注释,尽管我计算了同样多的代码行,并对使用它们的任何代码行进行了注释,但仍然是相同的行为