如何在Windows 7上设置java_home?

时间:2010-04-12 02:37:40

标签: java windows-7 java-home system-variable

我在控制面板的“系统”中找到了环境变量,并创建了两个新变量,一个用于用户变量,另一个用于系统变量。两者都被命名为JAVA_HOME并且都指向

  

C:\太阳\ SDK \ JDK \ BIN

但由于某种原因,我在运行Java命令时仍然遇到以下错误...

BUILD FAILED
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:161: The following error  occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:141: The following error occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:137: Please set java.home to a JDK installation

Total time: 1 second
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish>lib\ant\bin\ant -f setup.xml
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: setup.xml

如何解决此问题?

18 个答案:

答案 0 :(得分:658)

查找JDK安装目录

首先,您需要了解Java Development Kit的安装路径。

打开JDK的默认安装路径:

C:\Program Files\Java

应该有一个子目录,如:

C:\Program Files\Java\jdk1.8.0_172
  

注意:一个人只需将路径放到没有/ bin的jdk中(正如很多地方所建议的那样)。例如C:\ Java \ jdk1.8.0_172而不是C:\ Java \ jdk1.8.0_172 \ bin!


设置JAVA_HOME变量

获得JDK安装路径后:

  1. 右键单击桌面上的我的电脑图标,然后选择属性
  2. 点击高级标签,然后点击环境变量按钮。
  3. 系统变量下,单击“新建”。
  4. 输入变量名称 JAVA_HOME
  5. 输入变量值作为Java Development Kit的安装路径。
  6. 点击确定
  7. 点击应用更改
  8.   

    注意:您可能需要重新启动Windows

    完整的文章在我的博客上:Setting JAVA_HOME Variable in Windows

答案 1 :(得分:153)

对我来说有用的是将%JAVA_HOME%\bin添加到Path环境变量中,JAVA_HOME环境变量指向jdk文件夹。

答案 2 :(得分:120)

您必须先在系统中Install JDK

设置Java Home

JAVA_HOME = C:\ Program Files \ Java \ jdk1.7.0 [JDK安装目录的位置]

获得JDK安装路径后:

  • 右键单击
  • 上的“我的电脑”图标
  • 选择属性。
  • 单击屏幕左侧的“高级系统设置”选项卡
  • Aadvance Popup已开放。
  • 单击Environment Variables按钮。

enter image description here

  • 在“系统变量”下,单击“新建”。
  • 输入变量名称JAVA_HOME。
  • 输入变量值作为Java Development Kit的安装路径。
  • 单击“确定”。
  • 点击Apply Changes。

在系统变量

下设置JAVA路径

路径 = C:\ Program Files \ Java \ jdk1.7.0; [用分号附加值]

check here

答案 3 :(得分:29)

在cmd中(暂时用于该cmd窗口):

set JAVA_HOME="C:\\....\java\jdk1.x.y_zz"

echo %JAVA_HOME%

set PATH=%PATH%;%JAVA_HOME%\bin

echo %PATH%

答案 4 :(得分:17)

http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html

控制面板>在Java,Java选项卡上,单击“查看”按钮。在运行时参数中,输入:

-Djava.home=YOUR_PATH_HERE

或者,当您执行Java时,可以将该命令行开关添加到命令:

java -Djava.home=PATH SomeJavaApp

答案 5 :(得分:15)

您需要将其设置为C:\Sun\SDK\jdk(假设这是JDK的安装位置 - 这不是默认设置) - 不要将\ bin放在C:\Sun\SDK\jdk\bin中。

如果您的应用仅在您以当前用户身份登录时运行,则将其放入用户变量中 - 如果需要为系统上的所有用户运行,则将其放入系统变量中。

您可能还需要将%JAVA_HOME%\bin添加到路径中(此外,它还取决于您是仅从用户还是从所有用户(包括系统)运行它)

答案 6 :(得分:9)

One Image可以解决此问题。 enter image description here

For More

答案 7 :(得分:7)

这是the official solution用于从www.java.com设置Java环境 - here

有适用于Windows 7,Windows Vista,Windows XP,Linux / Solaris和其他shell的解决方案。


实施例

  

Windows 7

     
      
  1. 从“开始”菜单中选择“计算机”
  2.   
  3. 从上下文菜单中选择系统属性
  4.   
  5. 点击高级系统设置 - >高级选项卡
  6.   
  7. 单击“系统变量”下的“环境变量”,找到“路径”,然后单击它。
  8.   
  9. 在编辑窗口中,通过将类的位置添加到PATH的值来修改PATH。如果您没有PATH项,则可以选择添加新变量并将PATH作为名称和类的位置添加为值。
  10.   
  11. 重新打开命令提示符窗口,然后运行Java代码。
  12.   

答案 8 :(得分:6)

对于仍然难以解决这个问题的人(我尝试了以上所有建议) -

如果您使用的是64位版本的Windows并且已经安装了32位JDK,那么除了调整PATH变量之外,您可能还需要调整注册表变量,太

我正在把我的头发拉出来,正确地设置我的PATH变量 - 仍然无济于事 - 然后只在我的注册表中找到“空出来的”Java条目,似乎是解决“失误”的问题Java运行时环境。

通过使用Process Monitor观看我试图开始的程序,为了嗅出它在Java(运行时环境)注册表中的位置,我得意地发现它正在寻找 {32} 版本的注册表项,可在HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment中找到。

在该密钥中,您应该找到安装了不同Java版本的子密钥(过去和/或现在)。单击最新版本的子项(例如,我的子项目为1.7.0_25)。单击该子项后,您将看到右侧列出的注册表字符串值,尤其是JavaHomeRuntimeLib。您需要修改这两个值的值,以分别反映当前文件夹和jvm.dll文件。

例如,在我的情况下,值(先前)分别设置为C:\Program Files (x86)\Java\jre7C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll,这些值在我的机器上是不存在的。我必须将这些更新为C:\Program Files (x86)\Java\jdk1.7.0_25\jreC:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin\client\jvm.dll的当前文件夹和文件。

同样,这完全取决于您安装的Java(JDK和/或JRE)版本(32位或64位)以及您使用的操作系统类型--32或64-位。只要知道它们会反映在注册表中的不同位置(如{32}应用程序的Wow6432Node,在我的情况下,在64位计算机上安装了32位JDK。

现在我已经更新了这两个注册表值,我的程序运行完美,没有更多关于缺少Java运行时环境(源于注册表)的打嗝或投诉。

答案 9 :(得分:5)

Windows 7

  1. 使用资源管理器(不是Internet Explorer!)转到控制面板\所有控制面板项目\用户帐户

    • 点击“开始”按钮

      start

    • 点击图片

      clickOnPhoto

  2. 更改我的环境变量

    Change my environment variables

  3. 新...

    new

    (如果您没有足够的权限将其添加到“系统变量”部分,请将其添加到“用户变量”部分)

  4. JAVA_HOME 添加为变量名称,将JDK位置添加为变量值>行

    edit system variable ok

  5. <强>测试

    • 打开控制台(cmd)
    • 输入set JAVA_HOME
      • 预期输出:JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60

答案 10 :(得分:5)

我们需要在这里交替讨论这两个环境变量。一个是 JAVA_HOME 变量。另一个是路径变量。引用JAVA_HOME变量的任何进程都在查找JDK的搜索路径,而不是JRE。使用JAVA_HOME变量不适用于Java编译器本身。编译器知道自己的位置。该变量用于其他软件,以便更容易地找到编译器。此变量通常由IDE软件使用,以便从Java源代码编译和构建应用程序。相比之下,Windows CMD解释器以及许多其他第一方和第三方软件引用了Path变量,而不是JAVA_HOME变量。

用例1:从CMD编译

因此,例如,如果您没有使用任何IDE软件,并且您只希望能够从CMD编译,而不依赖于您当前的工作目录,那么您想要的是正确设置Path变量。在您的情况下,您甚至不需要JAVA_HOME变量。因为CMD使用Path而不是JAVA_HOME来定位Java编译器。

用例2:从IDE编译

但是,如果 使用某些IDE软件,那么首先必须查看文档。它可能需要设置JAVA_HOME,但它也可能使用另一个变量名来实现相同的目的。多年来事实上的标准是JAVA_HOME,但情况可能并非总是如此。

用例3:从IDE和CMD编译

除了IDE软件之外,您还希望能够从CMD编译,独立于当前工作目录,然后在添加中添加到JAVA_HOME变量,您可能还需要附加JDK搜索Path变量的路径。

JAVA_HOME与路径

如果您的问题与编译Java有关,那么您需要检查JAVA_HOME变量和Path(如果适用)。如果您的问题与运行Java应用程序有关,那么您需要检查Path变量。

路径变量通用于所有操作系统。因为它是由系统定义的,并且因为它是用于定位JRE的默认变量,所以运行Java应用程序几乎没有任何问题。特别是在Windows上,软件安装人员通常会为您设置所有内容。但是如果你手动安装,最安全的做法可能是完全跳过JAVA_HOME变量,只使用Path变量来处理JDK和JRE的所有内容。任何最新版本的IDE软件都应该能够选择并使用它。

<强>符号链接

符号链接可以通过搭载其中一个现有环境变量提供另一种引用JDK搜索路径的方法。

我不确定以前版本的Oracle / Sun JDK / JRE版本,但至少jdk1.8.0_74的安装程序会将搜索路径C:\ProgramData\Oracle\Java\javapath附加到Path变量它将它放在字符串值的开头。此目录包含指向JRE目录中java.exe,javaw.exe和javaws.exe的符号链接。

至少对于Java 8 JDK,可能是Java 8 JRE独立,不需要为JRE完成环境变量配置。只要您使用安装程序包进行设置即可。但是,您的Windows安装可能存在差异。请注意,Oracle JRE与JDK捆绑在一起。

如果您发现您的Java JDK配置使用了错误版本的编译器,或者它似乎是通过魔法工作,而没有明确定义(没有施放该咒语),那么您可能在某处有一个符号链接你的环境变量。所以你可能想检查符号链接。

答案 11 :(得分:5)

转到Mycomputer(此PC) - &gt; rightclick - &gt;选择属性 - &gt;高级系统设置 - &gt;环境变量 - &gt;在系统变量中点击“”按钮,在变量名称和路径C:\ Program Files \中编写 JAVA_HOME Java \ jdk1.8.0_131是jdk存在于变量值 - &gt;点击确定。

在设置JAVA_HOME后关闭并重新打开命令提示符。有时更改不会反映在设置JAVA_HOME之前打开的cmd中。

你也可以通过终端本身设置JAVA_HOME: SET JAVA_HOME =“C:\ Program Files(x86)\ Java \ jdk1.8.0_131”

答案 12 :(得分:4)

将Java目录添加到PATH变量时,您可能希望将其放在开头。我遇到了问题,将Java目录放在PATH的末尾是行不通的。检查后,我在java.exe目录中找到了Windows\System32,看起来第一个获胜,当PATH中有多个同名文件...

答案 13 :(得分:4)

在Eclipse中:Window->Preferences->Java->Installed JREs

使用搜索功能确保列出最新的Java安装;然后确保它是被检查的那个。这应该是JDK而不是JRE。

答案 14 :(得分:3)

以管理员身份运行Eclipse

这解决了我的问题。我还在挖掘它背后的逻辑。

答案 15 :(得分:2)

如果您在安装jdk后没有重新启动计算机,只需重新启动计算机。

如果您想在使用java之前创建 可移植 java并设置路径,请创建一个批处理文件,我将在下面解释。

如果要在计算机启动时运行此批处理文件,只需将批处理文件快捷方式放在启动文件夹中。在Windows 7启动文件夹是&#34; C:\ Users \ user \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup&#34;

制作这样的批处理文件:

set Java_Home=C:\Program Files\Java\jdk1.8.0_11
set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_11\bin

请注意: java_homepath是变量。你可以随意制作任何变量。 例如set amir=good_boy你可以通过%amir%看到amir,或者你可以通过%java_home%看到java_home

答案 16 :(得分:0)

在这里解决了大部分解决方案的工作数小时后,只需安装32位JDK就可以解决问题。

答案 17 :(得分:0)

您可能想在Windows / System32文件夹中查找以下文件: -java.exe -javaw.exe -javaws.exe

由于path变量包含这些文件,您可能会头疼,想弄清楚java -version或javac -version为什么总是指向旧的JAVA_HOME:重命名这些文件,以下划线删除扩展名,例如。然后,您只需要创建JAVA_HOME变量,将其添加到path变量(例如%JAVA_HOME%),然后附加“ \ bin”粒子即可。这样,您只需更改JAVA_HOME变量即可,使其指向不同的JRE或JDK,只需设置JAVA_HOME即可安装多个Java。

这也意味着最好手动安装Java,而无需安装程序,这样您就可以玩弄它了。