首页 文章

如何在Windows 7上设置java_home?

提问于
浏览
393

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

C:\ Sun \ 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

我该如何解决这个问题?

17 回答

  • 116

    Find JDK Installation Directory

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

    打开JDK的默认安装路径:

    C:\Program Files\Java
    

    应该有一个子目录,如:

    C:\Program Files\Java\jdk1.6.0_10
    

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


    Set the JAVA_HOME Variable

    获得JDK安装路径后:

    • 右键单击桌面上的 My Computer 图标,然后选择 Properties .

    • 单击 Advanced 选项卡,然后单击 Environment Variables 按钮 .

    • System Variables 下,单击“新建” .

    • 输入变量名称 JAVA_HOME .

    • 输入变量值作为Java Development Kit的安装路径 .

    • 单击 OK .

    • 单击 Apply Changes .

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

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

    获取Video Solution .

  • 6

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

  • 8

    您必须先在系统中使用Install JDK .

    设置Java Home

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

    获得JDK安装路径后:

    • 右键单击“我的电脑”图标

    • 选择属性 .

    • 单击屏幕左侧的“高级系统设置”选项卡

    • Aadvance Popup是开放的 .

    • 单击“环境变量”按钮 .

    enter image description here

    • 在“系统变量”下,单击“新建” .

    • 输入变量名称JAVA_HOME .

    • 输入变量值作为Java Development Kit的安装路径 .

    • 单击“确定” .

    • 单击“应用更改” .

    在系统变量下设置JAVA Path

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

    check here

  • 5

    In cmd (temporarily for that cmd window):

    set JAVA_HOME="C:\\....\java\jdk1.x.y_zz"
    
    echo %JAVA_HOME%
    
    set PATH=%PATH%;%JAVA_HOME%\bin
    
    echo %PATH%
    
  • 15

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

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

    -Djava.home=YOUR_PATH_HERE
    

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

    java -Djava.home=PATH SomeJavaApp
    
  • 23

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

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

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

  • 5

    One Image可以解决这个问题 .
    enter image description here

    For More

  • 17

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

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


    示例

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

  • 2

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

    如果您安装了32位JDK,除了调整 PATH 变量外,您可能还需要调整 registry 变量 .

    我正在拔出头发,正确设置我的 PATH 变量 - 仍无济于事 - 然后只在我的注册表中找到"vacated" Java条目,似乎是修复"misfiring" Java运行时环境的后果 .

    通过使用 Process Monitor 来观看我试图开始的程序,为了嗅出它在Java(运行时环境)的注册表中查找的位置,我成功地发现它正在查找 32-bit 版本的注册表项,在 HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment 中找到 .

    在该密钥中,您应该找到安装了不同Java版本的子密钥(过去和/或现在) . 单击最新版本的子项(例如,我的子项目为1.7.0_25) . 单击该子项后,您将看到右侧列出的注册表字符串值,尤其是 JavaHomeRuntimeLib . 您需要修改这两个值的值以分别反映 current 文件夹和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位应用程序, Wow6432Node ,在我的情况下,在64位计算机上安装了32位JDK) .

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

  • 148

    Windows 7

    • 使用资源管理器(不是Internet Explorer!)转到 Control Panel\All Control Panel Items\User Accounts

    要么

    • 单击“开始”按钮

    start

    • 点击你的图片

    clickOnPhoto

    • Change my environment variables

    Change my environment variables

    • New...

    new

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

    • JAVA_HOME 添加为变量名称,将JDK位置添加为变量值>确定

    edit system variable ok

    Test:

    • 打开一个 new 控制台(cmd)

    • 类型 set JAVA_HOME

    • 预期产量: JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60

  • 7

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

    Use case 1: Compiling from CMD

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

    Use case 2: Compiling from IDE

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

    Use case 3: Compiling from IDE and CMD

    如果除了IDE软件之外,您还希望能够从CMD编译,独立于当前工作目录,那么除了JAVA_HOME变量之外,您还可能需要将JDK搜索路径附加到Path变量 .

    JAVA_HOME vs. Path

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

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

    Symlinks

    符号链接可以通过搭载一个现有环境变量来提供引用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配置使用了错误版本的编译器,或者它看起来像魔术一样工作,而没有明确定义(没有强制转换法术),那么您可能在环境变量的某处有一个符号链接 . 所以你可能想检查符号链接 .

  • 3

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

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

  • 0

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

  • 637

    以管理员身份运行Eclipse .

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

  • 4

    转到Mycomputer(此PC) - >右键单击 - >选择属性 - >高级系统设置 - >环境变量 - >在_685113中单击“ New ”按钮并在 variable name 中写入 JAVA_HOME 并路径为C:\ Program Files \ Java \ jdk1.8.0_131是jdk存在于变量值 - >单击确定 .

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

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

  • 3

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

    如果你想在使用java之前创建一个 portable java并设置路径,只需制作一个批处理文件,我将在下面解释 .

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

    制作这样的批处理文件:

    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

  • 4

    在这里围绕大多数解决方案工作了几个小时后,只需安装32位JDK就可以解决问题 .

相关问题