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

时间:2011-09-06 20:20:55

标签: 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文件时,它会打开选​​择一个程序再次打开窗口。由于某种原因,它忽略了其他注册表项

6 个答案:

答案 0 :(得分:12)

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

  1. 打开 regedit.exe
  2. 搜索“jre6”或按照以下步骤操作:
    HKLM->SOFTWARE->Classes->jarfile->shell->open->command
  3. 将数据字段更改为JDK目录中 javaw.exe 文件的目录。
  4. 为了爱上帝,不要忘记把奇怪的[-jar "%1" %*]部分放在它的尽头。
  5. 享受卓越的Oracle。
  6. 希望这会为一些人节省一些时间。

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

答案 1 :(得分:4)

我通过去regedit并搜索了jre来修复它...

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

我更改了REG_SZ

来自:“C:\ Program Files(x86)\ Java \ jre7 \ bin \ javaw.exe”“%1”

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

答案 2 :(得分:2)

当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

答案 3 :(得分:1)

使用

检查文件类型jarfile是否实际注册了* .jar扩展名
assoc .jar

似乎.jar没有链接到jarfile。

答案 4 :(得分:0)

通过更改CLASSPATH环境变量来更改您的Java版本是否更容易更新jdk7?了解here

的方式

答案 5 :(得分:0)

我不确定为什么没有一个解决方案有效,但我重新安装了jre7并且现在可以正常工作。