繁体   English   中英

JDK java可执行文件与JRE可执行文件

[英]JDK java executable vs JRE executable

我将Oracle JDK安装到/usr/jdk/jdk1.8.0_25并将该目录设置为JAVA_HOME。 JAVA_HOME / bin包含java可执行文件,JAVA_HOME / jre / bin包含另一个java可执行文件。 我所遵循的指南说要将JAVA_HOME / bin和JAVA_HOME / jre / bin添加到PATH,但这是正确的可执行文件,如果我从命令行调用java,它将被使用?

以下是JDK和JRE之间差异的简要概述

JRE装置的J avař不定时Ênvironment:它仅包含用于运行java程序二进制文件

JDK意味着J ava D evelopment K it:它包含用于运行java程序+二进制文件的二进制文件,以编译java源代码(并生成一个java程序)。

JDK内部总是包含一个JRE(在目录<JDK_HOME>/jre

JRE和JDK之间的主要区别是javac程序。 javac表示java c ompiler )(你还会在<JDK_HOME>/bin下找到一些其他程序,这些程序在<JDK_HOME>/jre/bin下不存在:所有这些程序对于java开发都很有用 - 但在大多数情况下case - 无法运行java程序。

两个位置的所有程序(即<JDK_HOME>/bin<JDK_HOME>/jre/bin )都是相同的,因此区分并不是很重要。

要准确回答你的问题:当你执行以java开头的命令行时运行的java实例是你的PATH系统变量中找到的第一个java实例......就像任何其他程序一样。

无论java中的路径是什么 - JAVA_HOME / bin或JAVA_HOME / jre / bin。

如果你看看安装了jdk / jre的文件夹结构,你会发现在jdk / bin文件夹中有很多二进制文件的集合,比如java,javac,javap等.JRE包含java但不包含javac, javap等我假设这是linux,你下载了压缩存档并提取了它。

如果您真的很好奇,可以将其写入命令行:

where java

这将给出可执行文件的确切位置。 在我的电脑上,这给了我

C:\ProgramData\Oracle\Java\javapath\java.exe

这是系统默认运行时java.exe的软链接(在我的例子中是C:\\Program files\\Java\\jre 1.8.0_25\\bin\\java.exe

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM