我试图通过右键单击文件夹并在上下文菜单中选择一个项目来运行.jar文件。当(Default)
中的HKEY_CLASSES_ROOT\Directory\shell\MyJar\command
值为:
"C:\Program Files (x86)\Java\jdk1.8.0_40\bin\java.exe" -jar "D:\path\to\MyJar.jar"
但是有了以下价值,我会得到一个弹出窗口"找不到应用程序":
java -jar "D:\path\to\MyJar.jar"
如果我将这些行输入到命令提示符中,那么这些行中的任何一行都可以正常工作,因此我认为问题与注册表有某种关系并没有"看到" classpath 路径。
以下是我的系统变量JAVA_HOME
和系统变量Path
的开头:
C:\Program Files (x86)\Java\jdk1.8.0_40
%JAVA_HOME%\bin;C:\ProgramData\Oracle\Java\javapath;
我在Windows 8.1和java版本1.8.0_40。
编辑:澄清措辞。回答刘国良:1。 是。
2。
java -version
收益:
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b26)
Java HotSpot(TM) Client VM (build 25.40-b25, mixed mode, sharing)
3。
echo %PATH%
以
C:\Program Files (x86)\Java\jdk1.8.0_40\bin;C:\ProgramData\Oracle\Java\javapath;
echo %JAVA_HOME%
收益:
C:\Program Files (x86)\Java\jdk1.8.0_40
答案 0 :(得分:1)
问题是当您在注册表编辑器中创建密钥时,密钥始终创建为REG_SZ
值,以便解析环境变量。因此,您需要创建一个密钥REG_EXPAND_SZ
。为其解析环境变量。您无法在注册表编辑器中执行此操作。
要实现您想要做的事情
myjar.reg
十六进制值为"%JAVA_HOME%\bin\java.exe" -jar "D:\path\to\MyJar.jar"
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\MyJar\command]
@=hex(2):22,00,25,00,4a,00,41,00,56,00,41,00,5f,00,48,00,4f,00,4d,00,45,00,\
25,00,5c,00,62,00,69,00,6e,00,5c,00,6a,00,61,00,76,00,61,00,2e,00,65,00,78,\
00,65,00,22,00,20,00,2d,00,6a,00,61,00,72,00,20,00,22,00,44,00,3a,00,5c,00,\
70,00,61,00,74,00,68,00,5c,00,74,00,6f,00,5c,00,4d,00,79,00,4a,00,61,00,72,\
00,2e,00,6a,00,61,00,72,00,22,00,00,00
将myjar.reg
导入注册表(在注册表编辑器文件 - >导入中)。然后在编辑器中修改Jar文件的路径。
答案 1 :(得分:0)
检查以下内容可能会有所帮助。
java -version
以查看您是否已成功设置它。echo %PATH%
和%JAVA_HOME%
以确认您的设置。答案 2 :(得分:0)
这里没有CLASSPATH问题。问题是找不到java.exe
。这是一个 PATH 问题。