Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.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_Eclipse_Jar_Javaw - Fatal编程技术网

Java &引用;不能';“找不到主类”;论地狱世界

Java &引用;不能';“找不到主类”;论地狱世界,java,eclipse,jar,javaw,Java,Eclipse,Jar,Javaw,我昨天开始学习Java。我安装了Eclipse、JDK和JRE,并编写了HelloWorld教程。我遵循了教程,它在Eclipse上正确运行。现在我想在一个runnable.jar文件上转换它,所以我去导出,创建它,它出现在桌面上 因此,当我尝试双击它(用javaw打开它)时,它返回忙碌的光标图标,但什么也没有发生。另一方面,如果我从cmdjava-jar HelloWorld.jar打开它,它就会正常工作。这正常吗?我能做什么?正如Pietu1998所说,javaw.exe将实际运行您的程序,

我昨天开始学习Java。我安装了Eclipse、JDK和JRE,并编写了HelloWorld教程。我遵循了教程,它在Eclipse上正确运行。现在我想在一个runnable.jar文件上转换它,所以我去导出,创建它,它出现在桌面上


因此,当我尝试双击它(用javaw打开它)时,它返回忙碌的光标图标,但什么也没有发生。另一方面,如果我从cmd
java-jar HelloWorld.jar
打开它,它就会正常工作。这正常吗?我能做什么?

正如Pietu1998所说,
javaw.exe
将实际运行您的程序,但不会打开控制台窗口。这是因为
javaw.exe
旨在运行GUI,而GUI显然不需要命令提示符。有关
java.exe
javaw.exe
之间的区别,请参阅

甚至

在命令提示符下,看起来什么都没有发生。将输出重定向到文件,您将看到您的程序实际运行:

javaw -jar HelloWorld.jar > HelloWorld.txt
程序的输出将在文件
HelloWorld.txt


通常,所有java程序都不依赖双击来运行,而是带有一种
启动器
,它为应用程序准备环境,然后运行它。它依赖于平台,如果平台允许使用双击运行它,那么它将以这种方式运行。这样的启动程序可能只是一个简单的脚本:
.bat
.cmd
.sh
或一个可执行的
.exe
。例如,如果您查看安装eclipse的文件夹,就会发现一个
eclipse.exe
文件(假设您的平台是windows)。创建这样一个启动器也很容易,在中有解释。

这里已经回答了-当双击jar时,Java会在
javaw.exe
中打开它,它不会显示控制台输出。你的代码运行时,你就是看不到它。通过运行
javaw-jarhelloworld.jar
可以得到相同的结果。
javaw -jar HelloWorld.jar > HelloWorld.txt