Windows JDK 7将自己报告为JRE(通过“java.home”系统属性)
我刚刚安装了最新的JDK 7 Update 21,并编写了以下一行代码(在Windows 7上): 结果是(令人惊讶地): 我相信我解决了所有常见的问题:Windows JDK 7将自己报告为JRE(通过“java.home”系统属性),windows,java,Windows,Java,我刚刚安装了最新的JDK 7 Update 21,并编写了以下一行代码(在Windows 7上): 结果是(令人惊讶地): 我相信我解决了所有常见的问题: JAVA_HOME设置为“D:\JAVA\jdk1.7.0_21” 我已将“D:\Java\jdk1.7.0\u 21\bin”设置为系统路径设置中的第一个路径 Windows\System32中没有java.exe 我使用的是“新鲜”命令行 我已经广泛搜索了这个网站和其他网站 我的注册表不包含“HKEY\U LOCAL\U MACHINE\
D:\Temp>echo %PATH%
d:\Java\jdk1.7.0_21\bin
D:\Temp>echo %JAVA_HOME%
D:\Java\jdk1.7.0_21
D:\Temp>type SystemInfo.java
public class SystemInfo {
public static void main(String[] args) {
System.out.println("java.home = " + System.getProperty("java.home"));
}
}
D:\Temp>java -verbose SystemInfo
[Opened d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
[Loaded java.lang.Object from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
[Loaded java.io.Serializable from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
...
[Loaded java.lang.Void from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
java.home = d:\Java\jdk1.7.0_21\jre
[Loaded java.lang.Shutdown from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
[Loaded java.lang.Shutdown$Lock from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
(更新:)基本上,我需要知道如何运行我的java应用程序,以便它能够访问java编译器(可在JDK的tools.jar中找到),而无需将jar复制到其他地方。
顺便说一句,这背后的主要问题是我的jetty无法编译JSP,因为java编译器丢失了。我知道我可以将“tools.jar”添加到JRE\lib\ext中,但这不是一个长期的解决方案。您可以将其视为输出,这是默认的Java执行环境 <> >为了配置JETY使用JDK,可能有帮助。 < P>这是默认的——在java热点解释器C++代码中指定。此外,这也是Sun最初希望在环境的Java主目录指向JDK时设置的系统属性 请参阅将java.home系统属性描述为“java运行时环境(JRE)的安装目录”的地方。另外,请注意,将java.home系统属性描述为“java安装目录”的地方是错误的(令人震惊!)
答案在于 home应该指向运行时,即用于执行程序的运行时。它与JAVA_HOME变量无关,安装程序甚至没有设置它。无论您遇到什么问题,它都与java.home属性无关。您的示例中是否使用任何类型的od IDE一行程序?TooR--no,由“notepad.exe”提供支持)谢谢,但我不知道该怎么做。它只建议使用“一个完整的JDK”,我正拼命尝试使用它。@Tom用你的d:\Java\jdk1.7.0\u 21\bin\Java.exe明确地启动jetty有帮助吗?
java.home = D:\Java\jdk1.7.0_21\jre
D:\Temp>echo %PATH%
d:\Java\jdk1.7.0_21\bin
D:\Temp>echo %JAVA_HOME%
D:\Java\jdk1.7.0_21
D:\Temp>type SystemInfo.java
public class SystemInfo {
public static void main(String[] args) {
System.out.println("java.home = " + System.getProperty("java.home"));
}
}
D:\Temp>java -verbose SystemInfo
[Opened d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
[Loaded java.lang.Object from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
[Loaded java.io.Serializable from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
...
[Loaded java.lang.Void from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
java.home = d:\Java\jdk1.7.0_21\jre
[Loaded java.lang.Shutdown from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]
[Loaded java.lang.Shutdown$Lock from d:\Java\jdk1.7.0_21\jre\lib\rt.jar]