Java 调用JDK中的JRE

Java 调用JDK中的JRE,java,windows-10,Java,Windows 10,我首先安装了JRE,Java应用程序运行良好。后来,我安装了JDK,发现JRE作为子目录是JDK的一部分。因此,我删除了原来的JRE。这一次,所有Java应用程序都不会启动JAVA_HOME被正确设置为指向JDK(我能够编译JAVA代码)。操作系统是Windows10。为什么在JDK中找到的JRE没有被调用?安装JDK时,您可以选择安装“公共JRE”-一个独立于JDK在Windows中注册的单独安装,添加到Windows注册表中,将在您在命令行中键入java…时调用,并将由仅依赖JRE/java

我首先安装了JRE,Java应用程序运行良好。后来,我安装了JDK,发现JRE作为子目录是JDK的一部分。因此,我删除了原来的JRE。这一次,所有Java应用程序都不会启动
JAVA_HOME
被正确设置为指向JDK(我能够编译JAVA代码)。操作系统是Windows10。为什么在JDK中找到的JRE没有被调用?

安装JDK时,您可以选择安装“公共JRE”-一个独立于JDK在Windows中注册的单独安装,添加到Windows注册表中,将在您在命令行中键入
java…
时调用,并将由仅依赖JRE/
java
可执行文件的程序使用。安装“公共JRE”的选项在JDK安装的这一步中可用:

另一方面,JDK发行版中的
jre
文件夹是一个“私有jre”-未向所有Windows程序公开,也未在Windows注册表中注册。如果只安装JDK而不安装“public JRE”,那么路径上将找不到可执行文件。根据
JAVA\u HOME
环境变量的不同,“private JRE”将对程序有用,该变量应指向JDK的根


我建议安装一个单独的“公共JRE”,但如果您希望控制台中有
java
可执行文件,请将
%java\u HOME%/JRE/bin
添加到您的Windows
PATH
(或者只需
%java\u HOME%/bin
即可使用JDK本身的
java
可执行文件)。有关如何修改
路径
变量的说明,请参阅。这假设您已经设置了
JAVA\u HOME
环境变量-如果没有设置,您可以在相同的配置窗口中进行设置,在该窗口中修改
路径

没有答案,但您可以尝试卸载然后重新安装JDK。您重新启动了系统吗?并检查您的路径变量(cmd-->echo%Path%),我想,当您安装独立JRE时,它是在Windows注册表中注册的,而JDK中的JRE就在那里。为什么要调用它?对于JDK安装,它们是为了完成。如果要使用java运行应用程序,以便windows自动使用它,则需要安装/注册windows的公共jre。JRE是JDK的一部分,它是一个私有的JRE。你所说的私有JRE到底是什么意思?工作起来很有魅力。只是想知道。。。如果您要安装完整的JDK,为什么需要有一个公共JRE呢。。这并不是绝对必要的(见我的最后一段),我只是猜测它们用于两个不同的目的——JDK用于开发(附加工具),JRE仅用于启动Java程序(Windows:注册表项、浏览器插件、自动更新)。然而,为什么JDK不以独立的公共JRE注册自身的方式注册“私有JRE”?我不知道。