【问题标题】:How to set java_home on Windows 7?如何在 Windows 7 上设置 java_home?
【发布时间】:2011-02-06 20:31:26
【问题描述】:

我在控制面板的“系统”中的环境变量中创建了两个新变量,一个用于用户变量,一个用于系统变量。两者都被命名为 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

我该如何解决这个问题?

【问题讨论】:

  • 您关闭了 cmd 并重新打开它?此外,看起来您指向的是 JRE 而不是 JDK。 JDK安装了吗?
  • 我确实安装了 JDK,它位于我将 java_home 设置为的 C:\Sun\SDK\jdk\bin 中。
  • 我什至重新启动了............从那以后......
  • 它似乎仍然在 C:\Program Files\Java\jre6\lib\ c 你能在命令提示符下执行 echo %JAVA_HOME% 并查看它报告的内容吗
  • 解决方法是:省略/bin

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


【解决方案1】:

查找 JDK 安装目录

首先你需要知道Java开发工具包的安装路径。

打开JDK的默认安装路径:

C:\Program Files\Java

应该有一个像这样的子目录:

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

注意: 只需将 jdk 的路径放在最后不带 /bin 的位置(很多地方都建议这样做)。例如C:\Java\jdk1.8.0_172 而不是 C:\Java\jdk1.8.0_172\bin !


设置 JAVA_HOME 变量

一旦你有了 JDK 安装路径:

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

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

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

【讨论】:

  • 谢谢。最后我意识到,最后只需要放置没有 /bin 的 jdk 路径(正如很多地方所建议的那样)。例如C:\Java\jdk1.6.0_31 而不是 C:\Java\jdk1.6.0_31\bin !
  • 上帝保佑有一个安装程序为您执行此步骤 :) 我刚从企业版切换到社区版,我确信我下载了错误的东西,因为它是一键点击企业版:p
  • 有时,系统变量更改要等到重新启动 windows 后才会生效。
  • 一个更快的方法是点击开始,然后开始输入环境变量
  • /Java/jre* 不是 JDK 目录,这是 Java Runtime Enviroment 目录。 JDK 位于一个单独的目录中,除非你想做一些疯狂的 hack
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    你必须首先在你的系统中Install JDK

    设置 Java 主页

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

    一旦你有了 JDK 安装路径:

    • 右键单击“我的电脑”图标
    • 选择属性。
    • 点击屏幕左侧的高级系统设置标签
    • Aadvance 弹出窗口已打开。
    • 点击环境变量按钮。

    • 在系统变量下,单击新建。
    • 输入变量名称为 JAVA_HOME。
    • 输入变量值作为 Java 开发工具包的安装路径。
    • 点击确定。
    • 单击应用更改。

    在系统变量下设置JAVA路径

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

    【讨论】:

    • JAVA_HOME 应该包含“\bin”吗?此处的其他答案似乎建议 PATH 应包含“bin”,但 JAVA_HOME 不应包含“bin”。
    • JAVA_HOME 不应包含 \bin。
    • [PLUS ONE] 好花!
    • 但是在 Image 上你用 \bin 输入。
    【解决方案4】:

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

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

    【讨论】:

    • 是的。如果您使用setx,那么在您关闭计算机后,JAVA_HOME 仍将被设置。然后你不必再次设置它。也不需要bin
    • 是的,但是如果你不想正式安装Java,那么正如sgrillon所说,你可以为那个实例临时设置它。更好的是,创建一个可以运行的批处理文件以打开命令提示符窗口并设置JAVA_HOMEPATHCLASSPATH,然后您就可以拥有一个“便携式”Java 环境。
    • 是的,但是设置JAVA_HOME地址不需要" "
    • @Aboozar Rajabi, You need " " if ... path contains a space char.
    【解决方案5】:

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

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

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

    【讨论】:

      【解决方案6】:

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

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

      -Djava.home=YOUR_PATH_HERE
      

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

      java -Djava.home=PATH SomeJavaApp
      

      【讨论】:

      • 控制面板的东西似乎只适用于Java的商业版本。不适用于 GPL 版本。
      【解决方案7】:

      一张图片可以解决这个问题。

      For More

      【讨论】:

        【解决方案8】:

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

        如果您使用的是 64 位版本的 Windows 并且已安装 32 位 JDK,则除了调整 PATH 变量外,您可能还需要调整 registry 变量。

        我把头发拉了出来,正确设置了我的PATH 变量——仍然无济于事——然后只在我的注册表中找到“空出”的 Java 条目,这似乎是修复“失火”的 Java 运行时的死胡同环境。

        通过使用Process Monitor 来观看我尝试启动的程序,以便找出它在Java(运行时环境)注册表中查找的位置,我得意洋洋地发现它正在查找32 -bit 版本的注册表项,在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-)少量。只需知道它们反映在注册表中的不同位置(例如 Wow6432Node 用于 32 位应用程序,在我的例子中,32 位 JDK 安装在 64 位机器上)。

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

        【讨论】:

        • 我在 64 位 windows 7 机器上,我同时拥有:C:\Program Files (x86)\Java\ 和 C:\Program Files\Java\ 现在我的问题是哪个应该我的 java_home 指向 ?
        • 有趣;我只有 x86 文件夹下的 Java 文件夹。
        • 在 C:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin 下我没有目录客户端,它只存在于 C:\Program Files (x86)\Java\jre7 下\斌。我该怎么办?
        • 在windows 7上,搜索关键字“1.8.0_74”后,我在HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Development Kit/1.8.0_74/或../1.8.0_65中找到了多个使用regedit的注册表以及之前安装的所有其他... 在从底部到我最新安装的 java 1.8.0_112 删除注册表后,现在 YourKit java profiler (profiler.exe) 可以正常工作:“启动 C:\Program Files\Java 时发生错误\jdk1.8.0_74\bin\javaw.exe" .
        【解决方案9】:

        这是the official solution,用于设置来自 www.java.com 的 Java 环境 - here

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


        示例

        Windows 7

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

        【讨论】:

        • 官方说明没用。它们仅提供有关如何设置环境变量的通用说明,而不是指示需要设置的值。他们只是说将其设置为“类的位置”,这令人困惑且毫无意义。
        • 这些指令没有设置 JAVA_HOME,这是一个完全独立于 PATH 的变量,某些程序需要它。
        【解决方案10】:

        Windows 7

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

          • 点击开始按钮

          • 点击你的图片

        2. 更改我的环境变量

        3. 新...

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

        4. 添加JAVA_HOME作为变量名和JDK位置作为变量值> OK

        测试:

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

        【讨论】:

          【解决方案11】:

          我们需要区分此处可互换讨论的两个环境变量。一个是 JAVA_HOME 变量。另一个是 Path 变量。任何引用 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 变量和路径(如果适用)。如果您的问题与运行 Java 应用程序有关,那么您需要检查您的 Path 变量。

          路径变量在所有操作系统中普遍使用。因为它是由系统定义的,并且因为它是用于定位 JRE 的默认变量,所以运行 Java 应用程序几乎没有任何问题。尤其是在 Windows 上,软件安装程序通常会为您设置好一切。但是,如果您手动安装,最安全的做法可能是完全跳过 JAVA_HOME 变量,而只对 JDK 和 JRE 的所有内容使用 Path 变量。任何最新版本的 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 配置使用了错误版本的编译器,或者它似乎是在魔术般地工作,而没有明确定义(没有施法),那么您可能在某处有一个符号链接你的环境变量。因此,您可能需要检查符号链接。

          【讨论】:

            【解决方案12】:

            转到我的电脑(这台电脑)->右键单击->选择属性->高级系统设置->环境变量->在系统变量中点击“新建”按钮并在 变量名 中写入 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"

            【讨论】:

              【解决方案13】:

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

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

              【讨论】:

              • 这些指令没有设置JAVA_HOME,与eclipse无关。
              【解决方案14】:

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

              【讨论】:

              • 当/如果您使用安装程序安装 Java,它会将系统文件夹中的 java.exejavaw.exe 的副本替换为 JRE/JDK 中的副本,因此它应该仍然可以工作。如果您手动安装它(只需解压缩档案),那么您确实需要注意正在运行的副本。
              • 这些指令没有设置 JAVA_HOME,这是一个完全独立于 PATH 的变量,某些程序需要它。
              【解决方案15】:

              以管理员身份运行Eclipse

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

              【讨论】:

              • 我不能说我完全理解这一点,但也许 eclipse 实际上只是在这里给出了错误的错误信息。当您以非管理员身份运行它时,它无法删除 .jar 文件或其他东西,然后错误地报告它没有找到 javac。无论如何,这个解决方案也对我有用。
              • 如果您在 Windows Server 2012 R2 中运行 Eclipse,就我而言,以管理员身份运行 Eclipse 对我有用。还要记住将 java_home 设置为程序文件夹,而不是程序 (86) 文件夹。希望这对某人有所帮助。
              【解决方案16】:

              如果你在安装 jdk 后还没有重新启动你的电脑,只需重新启动你的电脑。

              如果你想制作一个便携 java并在使用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

              【讨论】:

                【解决方案17】:

                在解决了这里的大多数解决方案后,我只需要安装 32 位 JDK 就解决了这个问题。

                【讨论】:

                • 如果这是你想要的,那很好,但有些人不喜欢实际安装 Java,而只是手动设置一个“便携式”环境,在这种情况下,你需要知道需要哪些环境变量设置。
                【解决方案18】:

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

                因为路径变量包含这些文件,你可能会头疼试图弄清楚为什么 java -version 或 javac -version 一直指向旧的 JAVA_HOME:重命名这些文件,去掉带下划线的扩展名,例如。然后,您只需创建 JAVA_HOME 变量,将其添加到路径变量(例如 %JAVA_HOME%)并附加“\bin”粒子。这样你只需要更改指向不同 JRE 或 JDK 的 JAVA_HOME 变量,并通过设置 JAVA_HOME 来安装多个 java。

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

                【讨论】:

                  猜你喜欢
                  • 2017-04-20
                  • 1970-01-01
                  • 1970-01-01
                  • 2016-10-26
                  • 1970-01-01
                  • 2013-10-07
                  相关资源
                  最近更新 更多