多个JRE

我在做《Java日志工具之java.util.logging.Logger》的DEMO时,修改java.util.logging.Logger的配置文件,怎么修改都不起作用,因此打印了系统属性"java.home",才知道自己使用的是

,而不是自己想当然的

这可以追溯到安装JDK的时候,我们安装JDK的时候如果选择安装公共JRE就会安装两个JRE,以我安装JDK7为例,如下图:

你知道自己执行的是哪个jre吗?-LMLPHP

你知道自己执行的是哪个jre吗?-LMLPHP

可以看到会安装两个JRE,一个是JDK的专用JRE,一个是独立JRE。

为什么JDK自己还要装专用的JRE呢,不是多次一举吗?其实答案在于JDK多数工具本身就是JAVA编写的,执行自然需要JRE,为了防止你不知道要装JRE,所以干脆直接给你一个专用的。


到底使用的是哪个JRE

执行java.exe时,其实操作系统一般是按照如下顺序查找JRE:

  1. 查找当前目录下有没有JRE;
  2. 超找父目录下有没有JRE;
  3. 在PATH路径中找JRE(一般运行时从path中查找,按照path设置前后顺序,以前面为准);
  4. 在注册表HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\ 查看CurrentVersion的键值指向哪个JRE;

现在知道了为什么我修改java.util.logging.Logger的配置文件不起作用了吧?

其实可以获取系统属性"java.home"来快速查看自己到底用的是哪个JRE。

05-08 15:09