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

jhl*_*u87 6 java windows jar

我刚刚使用jdk7创建了一个jar文件.我试过运行它,但一直出错.事实证明它指的是jre6而不是jdk7中的jre.所以,我用以下命令来改变它

ftype jarfile ="C:\ path to jre\bin\javaw.exe"-jar"%1"%*

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

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

Dan*_*son 12

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

  1. 打开regedit.exe
  2. 要么搜索" jre6",要么按照以下方式:
    HKLM->SOFTWARE->Classes->jarfile->shell->open->command
  3. 将数据字段更改为JDK目录中的javaw.exe文件的目录.
  4. 为了爱上帝,不要忘记把奇怪的[-jar "%1" %*]部分放在它的尽头.
  5. 享受超越Oracle的经验.

希望这能为一些人节省一些时间.

当我JRE6为Chrome 安装插件时,这种情况发生在我身上,尽管在JRE我安装任何其他设备时可能会发生这种情况.


jhl*_*u87 1

我不确定为什么这些解决方案都不起作用,但我重新安装了 jre7,它现在​​可以工作了。