首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDK 7将自己报告为JRE (通过"java.home“系统属性)

JDK 7将自己报告为JRE (通过"java.home“系统属性)
EN

Stack Overflow用户
提问于 2013-06-12 08:57:58
回答 2查看 3.1K关注 0票数 4

我刚刚安装了最新的JDK 7 Update 21,并编写了以下一行程序(在Windows 7上):

代码语言:javascript
复制
public static void main(String[] args) {
    System.out.println("java.home = " + System.getProperty("java.home"));
}

输出结果(令人惊讶):

代码语言:javascript
复制
java.home = D:\Java\jdk1.7.0_21\jre

我相信我修复了所有共同的原因:

  1. JAVA_HOME设置为"D:\Java\jdk1.7.0_21“
  2. 我已经将"D:\Java\jdk1.7.0_21\bin“设置为系统路径设置中的第一个路径。
  3. Windows\System32 32中没有java.exe
  4. 我使用的是“新”命令行。
  5. 我已经广泛地搜索了这个和其他的网站。
  6. 我的注册表不包含"HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java运行时环境“项。"HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development \1.7“的值包含正确的"JavaHome”值。
  7. 在-server调用中添加“java.exe”选项不会更改输出

以下是您的信息的更多输出

代码语言:javascript
复制
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复制到其他地方.

顺便说一句,这背后的主要问题是,由于缺少java编译器,我的jetty无法编译JSP。我知道我可以在JRE\lib\ext中添加"tools.jar“,但这不是一个长期的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-24 23:37:19

默认情况下,这是在Java C++解释器的C++代码中指定的。而且,Sun最初希望在环境的Java主节点指向JDK时设置系统属性。

请参见系统属性的Java(TM)教程,其中它将java.home系统属性描述为“(JRE)的安装目录”。另外,请注意Oracle的Java7JavadocforClass系统是错误的(惊呆了!)其中,它将java.home系统属性描述为“JavaInstallation目录”。

答案在于实际JVM代码的第309行

票数 7
EN

Stack Overflow用户

发布于 2013-06-12 09:26:10

您所看到的输出是非常好的--这是您的默认Java执行环境。

为了将jetty配置为使用JDK,也许会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17061482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档