java可以从cmd运行jar,但不能通过双击运行

问题描述:

我刚刚使用jdk7创建了一个jar文件。我试着运行它,但不断收到错误。原来,它指向的是jre6,而不是jdk7中的jre。所以,我用下面的命令来更改它java可以从cmd运行jar,但不能通过双击运行

FTYPE jar文件= “C:\路径JRE \ BIN \ javaw.exe的” 罐子 “%1” %*

在那之后,我试图将翻一番再次点击我的jar文件,但它弹出一个窗口,要求我选择一个程序来打开它。当我选择与上面相同的javaw.exe文件时,它会运行,但会立即退出而不做任何事情。我可以通过执行java -jar file.jar命令以cmd运行它。我甚至尝试删除.jar注册表项,但这让我回到了要求我选择要打开的程序的地步。如果有问题,我正在运行Windows 7最终版。

编辑: 在注册表中有3个子项:OpenWithList,OpenWithProgids和UserChoice。我已将所有默认设置更改为除UserChoice之外的路径,该设置不会让我从注册表编辑它。当我删除它并尝试运行jar文件时,它会打开选​​择程序以再次打开窗口。由于某种原因,它忽略了其他注册表项

我不确定为什么没有解决方案工作,但我重新安装了JRE7,现在它的工作。

当Windows要求您运行它的程序时,它不会在命令行中插入所需的-jar参数。

如果它要求您输入exe,那么这意味着您的JRE.jar扩展名无关。您需要修改.jar文件注册表项,以使其运行c:\path_to_jre\bin\javaw -jar %1以使其工作。
它曾经在File Explorer > Tools > Folder Options > File Types之下。

然后在那里寻找.jar。您应该找到显示要运行的可执行文件和命令行参数的文本字段。这就是你想要修改的。您也可以在注册表编辑器中执行此操作,但我忘记了HKEY可变路径。我敢肯定,这KBA将帮助:

support_microsoft_kb_950505

+1

关联正是jhlu87所显示的'ftype'命令正在做的事情。 –

是不是更容易通过改变CLASSPATH环境变量来改变你的Java版本你R新JDK7?怎么看here

+0

我的类路径设置为正确的路径 – jhlu87

检查文件类型jarfile实际使用

assoc .jar 

的* .jar扩展名注册看起来像的.jar不挂jar文件。

+0

是的,我已经做到了。它返回.jar = jarfile – jhlu87

好吧,我在其他地方找到了答案,但又遇到了这个问题,所以通过谷歌来到这里。
解决的办法是...

  1. 打开了器regedit.exe
  2. 无论是搜索 “jre6” 或遵循此:
    HKLM->SOFTWARE->Classes->jarfile->shell->open->command
  3. 更改数据字段的javaw进程的目录.exe文件位于您的JDK目录中。
  4. 对于上帝的爱,别忘了把奇怪的[-jar "%1" %*]零件放在它的末尾。
  5. 享受智取甲骨文。

希望这会为一些人节省一点时间。

我发生了这种情况,当我安装Chrome的JRE6插件时,虽然它可能发生在安装任何其他JRE我猜。

+0

因为“全局”关联完全丢失,我试图用“OpenWith”打开jar文件,因此我的正确密钥(Win7)是HKEY_CURRENT_USER \ Software \ Classes \ jar_auto_file \ shell \ open \ command。 –

我固定它通过进入注册表编辑器,并寻找其带来了JRE ...

HKEY_CURRENT_USER /软件/班/应用/ javaw.exe的/壳/开/命令

我改变了REG_SZ

从: “C:\ Program Files文件(x86)的\的Java \ jre7 \ BIN \ javaw.exe的” “%1”

到:“C:\ Program Files文件(x86)的\的Java \ jre7 \ bin \ javaw.exe“-jar”%1“%*

+0

editet所有路径和帮助 –