如何在Windows中为Java设置环境变量

236

如何在Windows中设置Java的环境变量(即类路径)?


2
哪些环境变量?classpath 和 JAVA_HOME?哪个平台(Linux/Windows)?请详细阐述。 - Wernsey
27
我独自一人认为Java安装程序不自动更新路径环境变量太过平庸了。 - Thomas Eyde
3
这个想法唯一的问题在于,如果我想在我的机器上使用多个JVM,自动设置路径就会引起问题。 - Richard Le Mesurier
6
在安装程序中添加一个“设置为新默认JVM”的复选框即可。 - Algoman
注释以供参考 - Asker123
17个回答

438

64位Windows 7或Windows 8上的Java SE Development Kit 8u112

设置以下用户环境变量(即类型为用户变量的环境变量)

  • JAVA_HOME: C:\ Program Files \ Java \ jdk1.8.0_112
  • JDK_HOME: %JAVA_HOME%
  • JRE_HOME: %JAVA_HOME%\jre
  • CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\jre\lib
  • PATH: your-unique-entries;%JAVA_HOME%\bin (确保较长的 your-unique-entries 中不包含对另一个Java安装文件夹的任何引用。

针对64位系统上的Windows用户注意:

Progra~1 = 'Program Files'
Progra~2 = 'Program Files(x86)'

注意这些环境变量是从"root"环境变量JAVA_HOME派生出来的。这使得在更新JDK时更新环境变量变得容易。只需将JAVA_HOME指向新的安装位置即可。

有一篇博客文章解释了所有这些环境变量背后的原理。

可选建议

  • 添加一个用户环境变量JAVA_TOOL_OPTIONS,值为-Dfile.encoding="UTF-8"。这确保Java(以及Maven等工具)将以UTF-8作为Charset.defaultCharset()运行(而不是默认的Windows-1252)。这在处理自己和他人的代码时,非常方便,因为很多代码都假设(合理的)默认编码是UTF-8
  • 当安装JDK时,它会将一条记录C:\ProgramData\Oracle\Java\javapath;添加到系统环境变量Path中。我曾经发现,在JDK安装更新期间,该目录中的链接没有得到更新。因此,最好从Path系统环境变量中删除C:\ProgramData\Oracle\Java\javapath;,以获得一致的环境。

12
这是更好的答案。 - Kimchi Man
1
好的回答。我还创建了一个目录链接到我的Java安装,这样我可以在安装新版本时更新它(mklink /j C:\devel\java8 "C:\Program Files\Java\jdk1.8.0_91")。这样当我使用cygwin或其他无法读取Windows环境变量的东西时,我仍然有一种快速切换版本的方法。而且记住没有次要版本号的较短路径要容易得多。 - kghastie
4
javapath目录和符号链接是JRE安装时创建的(在安装JDK时是一个可选过程),因此如果没有安装JRE,您就不会创建javapath。请注意,您回答中的%JAVA_HOME%\ jre是JDK的私有JRE,旨在供Java编译器使用。它与公共JRE并不完全相同。此外,请注意,自1.8u112以来,JRE安装似乎已经停止在javapath中创建符号链接,并改为在.. \ javapath_target_nnnnnnn \ * .exe中创建到.exe文件的硬链接。 - Klitos Kyriacou
@KlitosKyriacou,谢谢你,我之前还不知道公共JRE与私有JRE的区别。我比较了两个文件夹层次结构,发现只有一些小差异。所以我猜无论是否安装了可选的JRE,将JRE_HOME=%JAVA_HOME%\jre设置为安全的。如果有异议,请评论。 - Abdull
5
对我来说,这个设置很好用。由于JDK 11上没有jre文件夹,因此我删除了JRE_HOME变量以及CLASSPATH变量中的%JAVA_HOME%\jre\lib值。有关不带jre的JDK 11的更多信息,请参阅以下链接:https://dev59.com/rVQK5IYBdhLWcg3wDLgw - Huanfa Chen
显示剩余10条评论

69

在Windows中设置JAVA_HOME的步骤:

第1步: 右键点击“我的电脑”,选择“属性”。

第2步: 点击“高级”选项卡。

alt text

第3步: 点击“环境变量”。

alt text

第4步: 为JAVA_HOME创建一个新的类路径。

alt text

第5步: 将变量名设为JAVA_HOME,将值设为你的jdk bin路径,例如c:\Programfiles\Java\jdk-1.6\bin,并确保在数值中以.;开头,这样可以避免损坏其他已经设置好的环境变量。

alt text

第6步: 按照上面的步骤编辑系统变量中的Path,将;c:\Programfiles\Java\jdk-1.6\bin添加到数值列中。

第7步: 完成Java的环境变量设置。可以打开命令提示符,输入相应的代码进行测试。

 java   

谁将会得到帮助文档列表

为确保编译器设置正确,请在命令提示符中输入

  javac

谁会得到与javac相关的列表

希望这可以帮到您!


1
很好的解释。在第6步中有一点需要注意:不要输入“$java”或“$javac”,只需输入“java”或“javac”。 - Jesper
1
请注意,您必须将JDK bin目录添加到“PATH”环境变量中;仅设置“JAVA_HOME”是不够的。 - Jesper
1
是的,抱歉,因为我是 Linux 爱好者,所以错过了它,我会更改的,谢谢。 - Srinivas M.V.
3
  1. 在WINDOWS中使用反斜杠。
  2. 不要以“.;”开头的任何路径。
  3. 将“%JAVA_HOME%\bin”添加到路径中,这样您可以稍后更改java_home而无需更改路径。
- raudi
1
@Wannacoffee 更新了反斜杠的更改。 - Srinivas M.V.
JAVA_HOME不应包含bin目录,它是Java的主目录,而不仅仅是可执行文件。 - user85421

30

--- 设置java路径 ---

有两种设置java路径的方法:

A. 临时性

  1. 打开命令提示符
  2. 在命令提示符中输入:javac

如果未安装Java,则会看到以下消息:

javac不是内部或外部命令,也不是可运行的程序或批处理文件

  1. 在命令提示符中输入:set path=C:\Program Files\Java\jdk1.8.0_121\bin
  2. 在命令提示符中输入:javac

如果没有出现错误消息,则可以检查路径已经设置。

需要注意的是,这些更改仅在从此命令提示符启动的程序中是临时的。

注意:您可能需要以管理员身份运行命令行

B. 永久性

  1. 右键单击“我的电脑”,然后点击“属性”
  2. 点击“高级系统设置”
  3. 点击“环境变量”
  4. 点击用户变量的新选项卡
  5. 在“变量名称”中写入path
  6. 复制bin文件夹的路径
  7. bin文件夹的路径粘贴到变量值
  8. 点击确定

路径现在已经被永久设置。

提示:工具“Rapid Environment Editor”(免费软件)非常适用于修改环境变量,特别是在这种情况下非常有用

提示2: 访问环境变量还有一种更快捷的方式:按下Win+R键,粘贴以下内容%windir%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables并按ENTER键。


17
在Windows 7中,右键单击计算机-> 属性-> 高级系统设置; 然后在高级选项卡中,单击环境变量...-> 系统变量-> 新建...。
给新系统变量命名为JAVA_HOME,值为C:\Program Files\Java\jdk1.7.0_79(根据您的JDK安装路径而异)。
然后选择Path系统变量并单击编辑...。保持变量名称为Path,并将C:\ Program Files \ Java \ jdk1.7.0_79 \ bin; 或%JAVA_HOME% \ bin; (两者意思相同)附加到变量值。
完成上述更改后,请尝试以下步骤。如果您看不到类似的结果,请重新启动计算机并重试。如果仍然无法正常工作,则可能需要重新安装JDK。
打开Windows命令提示符(Windows键+ R ->输入 cmd -> 确定),并检查以下内容:
java -version
你会看到类似这样的内容:
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

接下来,请检查以下内容:

javac -version

你将会看到类似以下的内容:

javac 1.7.0_79

15

JDK安装说明详细解释了如何为不同版本的Windows设置PATH

通常情况下,您不应该设置CLASSPATH环境变量。如果未设置它,则Java将在当前目录中查找类。您可以使用javajavac-cp-classpath命令行开关。


4
"+1" 表示同意, "Normally you should not set the CLASSPATH environment variable." 的意思是通常情况下不应该设置 CLASSPATH 环境变量。 - BalusC

5

我将通过图片为Windows 7进行说明。

请按照以下步骤操作:

步骤1: 进入“开始”并进入“My Computer”属性

enter image description here

步骤2:进入“高级系统设置”并单击它。

enter image description here

步骤3:进入“开始”并进入“My Computer”属性

enter image description here

步骤4:环境变量对话框将打开如下图所示:

enter image description here

步骤5:转到路径并单击编辑。

enter image description here

步骤6:将您的JDK路径放在bin处,就像您在图片中看到的那样。同时,还要添加来自Android的sdk的路径,直到Platform Tools:

enter image description here


3

答案中的第一个链接似乎已经过时了。 - Pang

3
在编程环境中,您可以执行SET命令(SET classpath=c:\java),或右键单击计算机 -> 属性 -> 高级 -> 环境变量。在批处理文件中,您可以使用以下命令:
SET classpath=c:\java
java c:\myapplication.class

无法理解第二行。它是什么意思? - St.Shadow

3

对于Windows 7的用户:

右键点击我的电脑,选择属性;高级;系统设置;高级;环境变量。然后在第二个框中找到PATH,并像下面的图片一样设置变量。

PATH variable editor


3

Java 11 设置路径

  1. 复制 JDK-11 的路径

不要包含 \bin 文件夹,只需 JDK 路径。例如:

正确C:\Program Files\Java\jdk-11

错误C:\Program Files\Java\jdk-11\bin

环境变量用户变量部分点击新建按钮并输入以下路径。 enter image description here

之后点“确定”。接着进入系统变量并选择 Path,双击它。

enter image description here

点击新建,然后粘贴 %JAVA_HOME%\bin 并点击确定。 enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接