Java jar文件将在命令行中运行,但在单击时不会运行

Java jar文件将在命令行中运行,但在单击时不会运行,java,cmd,executable-jar,Java,Cmd,Executable Jar,我知道以前已经讨论过执行.jar文件的问题(正如我在发布之前阅读并搜索了几个线程),但这一个有点不同。我的.jar在被 java -jre [Jar Name].jar 但当我点击它时它不会运行 好的,我现在运行的是JDK1.6.0_30。输入 java -version cmd提供了这么多,所有相关代码都是在JDK下编译的。此外,在我的环境变量中,“路径”指向 C:\Program Files\Java\jdk1.6.0_30\\bin; 所以这也很好 我认为这是我的计算机如何识别.j

我知道以前已经讨论过执行.jar文件的问题(正如我在发布之前阅读并搜索了几个线程),但这一个有点不同。我的.jar在被

java -jre [Jar Name].jar
但当我点击它时它不会运行

好的,我现在运行的是JDK1.6.0_30。输入

java -version
cmd提供了这么多,所有相关代码都是在JDK下编译的。此外,在我的环境变量中,“路径”指向

C:\Program Files\Java\jdk1.6.0_30\\bin; 
所以这也很好

我认为这是我的计算机如何识别.jar文件的问题,于是我输入

ftype|find "jarfile"
但这似乎也很好,正如它所述

"C:\Program Files\Java\jre6\bin\javaw.exe" -jar "%1" %*
我相信这就是它应该做的


除非用户输入代码,否则我的代码不会终止,因此我知道问题不是我的代码正在运行,然后在完成后关闭命令行。它根本不会打开命令或错误。在这里,我还忽略了哪些与.jar文件和Java的一致性?

根据我的经验,在Windows 7中双击.jar文件时,我会通过以下方式强制运行它们:

  • 右键单击.jar文件,选择“打开方式”上下文菜单选项
  • 浏览并选择java.exe作为打开.jar文件的进程
  • 选中“始终使用所选程序打开此类文件”选项,以便在将来我双击.jar文件时执行该文件

  • 同样,我也完成了同样的过程,但选择了使用Zip实用程序(例如,.7-Zip)打开.jar文件,这样我的.jar文件就可以像.Zip文件一样处理,因为99%我希望检查其内容,而不是运行它们。

    根据我的经验,我在Windows 7中双击.jar文件时,通过以下方式强制运行它们:

  • 右键单击.jar文件,选择“打开方式”上下文菜单选项
  • 浏览并选择java.exe作为打开.jar文件的进程
  • 选中“始终使用所选程序打开此类文件”选项,以便在将来我双击.jar文件时执行该文件

  • 同样,我也完成了同样的过程,但选择了使用Zip实用程序(例如,.7-Zip)打开.jar文件因此,我的.jar文件被视为.zip文件,因为99%我希望检查其内容,而不是运行它们。

    看起来Windows文件关联正在使用JRE,而命令行
    java
    命令正在使用JDK。这可能是问题所在吗?在创建jar时是否指定了主类?查看Jar中的清单文件中是否有MainClass值?使用javaw.exe从命令行运行时会发生什么?这是有效的命令还是普通的java.exe?是的,指定了主类。它毕竟是在命令行中运行的,只是在单击时没有。还有,真实性,你到底是什么意思?我应该让路径指向jre,还是我错了?指向Logan;实际上,当我使用javaw-jar[jar Name].jar运行它时,也不会发生任何事情。所以它看起来就像普通的java.exeWell它看起来像Windows文件关联在使用JRE,而命令行
    java
    命令在使用JDK。这可能是问题所在吗?在创建jar时是否指定了主类?查看Jar中的清单文件中是否有MainClass值?使用javaw.exe从命令行运行时会发生什么?这是有效的命令还是普通的java.exe?是的,指定了主类。它毕竟是在命令行中运行的,只是在单击时没有。还有,真实性,你到底是什么意思?我应该让路径指向jre,还是我错了?指向Logan;实际上,当我使用javaw-jar[jar Name].jar运行它时,也不会发生任何事情。所以它看起来就像普通的java.exe