[英]java can run jar from cmd but not by double clicking
我刚刚使用jdk7创建了一个jar文件。 我尝试运行它,但一直出现错误。 原来,它指向的是jre6,而不是jdk7中的jre。 因此,我使用以下命令对其进行了更改
ftype jarfile =“ C:\\ jre \\ bin \\ javaw.exe的路径” -jar“%1”%*
在那之后,我试图再次双击我的jar文件,但是它弹出了一个窗口,要求我选择一个打开它的程序。 当我选择与上述相同的javaw.exe文件时,它将运行,但不执行任何操作便立即退出。 我可以通过执行java -jar file.jar命令在cmd中很好地运行它。 我什至尝试删除.jar注册表项,但这使我回到要求我选择要打开的程序的位置。 如果重要的话,我正在运行Windows 7 Ultimate。
编辑:在注册表中有3个子项:OpenWithList,OpenWithProgids和UserChoice。 除了UserChoice之外,我将所有默认值都更改为上述路径,后者不允许我从regedit中对其进行编辑。 当我删除该文件并尝试运行jar文件时,它会打开选择程序以再次打开窗口。 由于某种原因,它会忽略其他注册表项
好的,我在其他地方找到了答案,但是又遇到了这个问题,因此通过Google来到了这里。
解决方法是...
jre6
”或遵循以下步骤: HKLM->SOFTWARE->Classes->jarfile->shell->open->command
[-jar "%1" %*]
部分放在结尾。 希望这可以节省一些时间。
当我为Chrome安装JRE6
插件时,这发生在我身上,尽管我猜安装其他JRE
时也可能发生。
我通过注册进行修复并搜索了出现的jre ...
HKEY_CURRENT_USER /软件/类/应用程序/javaw.exe/shell/打开/命令
我换了REG_SZ
来自:“ C:\\ Program Files(x86)\\ Java \\ jre7 \\ bin \\ javaw.exe”“%1”
到:“ C:\\ Program Files(x86)\\ Java \\ jre7 \\ bin \\ javaw.exe” -jar“%1”%*
当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
是否实际以* .jar扩展名注册
assoc .jar
似乎.jar未链接到jarfile。
我不确定为什么所有解决方案都不起作用,但是我重新安装了jre7,它现在可以工作了。
通过更改CLASSPATH
环境变量将Java版本更改为rnew jdk7难道不是很容易吗? 看看这里如何
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.