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将帮助:
检查文件类型jarfile
实际使用
assoc .jar
的* .jar扩展名注册看起来像的.jar不挂jar文件。
是的,我已经做到了。它返回.jar = jarfile – jhlu87
好吧,我在其他地方找到了答案,但又遇到了这个问题,所以通过谷歌来到这里。
解决的办法是...
- 打开了器regedit.exe
- 无论是搜索 “
jre6
” 或遵循此:HKLM->SOFTWARE->Classes->jarfile->shell->open->command
- 更改数据字段的javaw进程的目录.exe文件位于您的JDK目录中。
- 对于上帝的爱,别忘了把奇怪的
[-jar "%1" %*]
零件放在它的末尾。 - 享受智取甲骨文。
希望这会为一些人节省一点时间。
我发生了这种情况,当我安装Chrome的JRE6
插件时,虽然它可能发生在安装任何其他JRE
我猜。
因为“全局”关联完全丢失,我试图用“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“%*
editet所有路径和帮助 –
关联正是jhlu87所显示的'ftype'命令正在做的事情。 –