什么是 JAVA_HOME? JVM如何找到存储在JAVA_HOME中的javac路径?

Posted

技术标签:

【中文标题】什么是 JAVA_HOME? JVM如何找到存储在JAVA_HOME中的javac路径?【英文标题】:What is JAVA_HOME? How does the JVM find the javac path stored in JAVA_HOME? 【发布时间】:2011-01-02 18:36:27 【问题描述】:

我想知道什么是JAVA_HOME。 javac.exe和java.exe的路径在哪里设置。它在环境变量中。当我从命令提示符编译Java程序时,JVM如何找到javac.exe

【问题讨论】:

更清楚什么是 JAVA_HOME 问题:***.com/questions/5102022/… 【参考方案1】:

JAVA HOME 用于设置 JAVA 的环境变量。这意味着您正在提供编译 JAVA 程序并运行该程序的路径。因此,如果您没有设置 JAVA HOME( PATH ) 并尝试在命令提示符下运行 java 或任何依赖程序。

您将处理错误 javac : not recognized as internal or external command。 现在要设置这个,只需打开您的 Java jdk 然后打开 bin 文件夹,然后复制该 bin 文件夹的 PATH。

现在,转到我的电脑右键单击它---->选择属性----->选择高级系统设置----->单击环境变量----->选择新建- ---->在文本框中输入变量名称,然后将路径粘贴到值中。

就是这样!!

【讨论】:

【参考方案2】:

使用此命令 /usr/libexec/java_home 检查 JAVA_HOME

【讨论】:

老问题。更好的答案是在设置 JAVA_HOME 时指向 Oracle help page。【参考方案3】:

基本上JAVA_HOME 用于设置 java 的路径。它在 Windows 中使用。用于设置java EEANTMaven等多个软件的路径。 这是解决问题的步骤:

仅用于核心 java 设置路径: 路径:"C:\Program Files\Java\jre1.8.0_77\bin" 但是当你使用像 ANT 这样的多重构建时,核心 java 那么你在环境中使用 JAVE_HOME

按照步骤:

JAVA_HOME:"C:\Program Files\Java\jre1.8.0_77\bin" ANT_HOME:"C:\ant\apache-ant-1.9.6"

路径:JAVA_HOMEANT_HOME; 这是设置环境变量的系统方式..

【讨论】:

JAVA_HOME 不应包含 'bin' 目录。【参考方案4】:

JAVA_HOME 是一个环境变量,设置为您计算机上 Java 目录的位置。 PATH 是一个内部 DOS 命令,用于查找您正在使用的 Java 版本的 /bin 目录。通常它们是相同的,只是 PATH 条目以 /bin 结尾

【讨论】:

【参考方案5】:

JAVA_HOMEJRE_HOME 不被 Java 本身使用。一些第三方程序(例如 Apache Tomcat)期望将这些环境变量之一设置为JDKJRE 的安装目录。如果您没有使用需要它们的软件,则无需设置JAVA_HOMEJRE_HOMEPATH 是操作系统(Windows、Mac OS X、Linux)使用的环境变量,它将在其中查找要运行的本机可执行程序。您应该将JDK 安装目录的bin 子目录添加到PATH,以便您可以在命令提示符窗口中使用javacjava 命令和其他JDK 工具。 礼貌coderanch

【讨论】:

【参考方案6】:

JVM 没有找到java.exe。它甚至不叫它。 java.exe 由操作系统(在本例中为 Windows)调用。

JAVA_HOME 只是一个约定,通常被 Tomcat、其他 Java EE 应用程序服务器和构建工具(如Gradle)用来查找 Java 所在的位置。

从您的角度来看,重要的是 Java /bin 目录位于您的 PATH 上,因此 Windows 可以找到 JDK 随附的 .exe 工具:javac.exejava.exe、@987654331 @等

【讨论】:

@Rajper 我不认为 JAVA_HOME 有助于定位 JDK。 JRE专用 JAVA_HOME 基本上是 JRE 或 JDK 的根目录,而路径是一个单独的故事,使您可以使用可执行文件。 碰巧如果你有JAVA_HOME,程序java实际上会尊重它并将命令转发到那里定义的任何JRE。因此,尊重 JAVA_HOME 的不仅是第 3 方,java 本身也是如此。检查这个解释:clojureverse.org/t/…【参考方案7】:

设置环境变量

JAVA_HOME=C:\Program Files\Java\jdk1.6.0_24

classpath=C:\Program Files\Java\jdk1.6.0_24\lib\tools.jar

path=C:\Program Files\Java\jdk1.6.0_24\bin

【讨论】:

【参考方案8】:

JAVA_HOME 是环境变量(在 Unix 术语中)或 PATH 变量(在 Windows 术语中)。许多表现良好的 Java 应用程序(需要 JDK/JRE)才能运行,会在 JAVA_HOME 变量中查找 Java 编译器/解释器所在的位置。

【讨论】:

【参考方案9】:

命令提示符不会使用 JAVA_HOME 来查找 javac.exe,而是使用 PATH。

【讨论】:

以上是关于什么是 JAVA_HOME? JVM如何找到存储在JAVA_HOME中的javac路径?的主要内容,如果未能解决你的问题,请参考以下文章

安装java时,配置环境变量classpath的作用

java基础JDK jvm path环境变量

如何从程序中找到 JVM 版本?

[转载]Class文件在JVM中如何存储

Ubuntu 现在可以设置 java 路径

Tomcat常见启动问题