如何在Windows 7上设置java_home?

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

我该如何解决这个问题?

查找JDK安装目录

首先,您需要知道Java开发工具包的安装path。

打开JDK的默认安装path:

 C:\Program Files\Java 

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

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

注意:只需要把path放到没有/ bin的jdk中(正如很多地方所build议的那样)。 例如C:\ Java \ jdk1.6.0_31和NOT C:\ Java \ jdk1.6.0_31 \ bin!


设置JAVA_HOMEvariables

一旦你有了JDK安装path:

  1. 右键单击桌面上的我的电脑图标,然后select属性
  2. 单击高级选项卡,然后单击环境variablesbutton。
  3. 系统variables下 ,单击新build。
  4. inputvariables名称为JAVA_HOME
  5. inputvariables值作为Java Development Kit的安装path。
  6. 点击OK
  7. 点击应用更改

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

完整的文章在这里,在我的博客上: 在Windows中设置JAVA_HOMEvariables 。

获取video解决scheme

我的工作是将%JAVA_HOME%\bin到Path环境variables,其中JAVA_HOME环境variables指向jdk文件夹。

您必须先在您的系统中安装JDK 。

设置Java Home

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

一旦你有了JDK安装path:

  • 右键点击我的电脑图标
  • select属性。
  • 点击屏幕左侧的高级系统设置标签
  • Aadvance Popup是开放的。
  • 点击环境variablesbutton。

在这里输入图像描述

  • 在系统variables下,单击新build。
  • inputvariables名称为JAVA_HOME。
  • inputvariables值作为Java Development Kit的安装path。
  • 点击OK。
  • 点击应用更改。

在系统variables下设置JAVApath

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

在这里检查

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

控制面板> Java,Java选项卡,单击查看button。 在运行时参数中,input:

 -Djava.home=YOUR_PATH_HERE 

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

 java -Djava.home=PATH SomeJavaApp 

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

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

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

如果您的应用程序只在以当前用户身份login时才运行,请将其放入用户variables中 – 如果需要为系统上的所有用户运行,则将其放入系统variables中。

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

这是从www.java.com设置Java环境的官方解决scheme – 在这里 。

有Windows 7,Windows Vista,Windows XP,Linux / Solaris和其他shell的解决scheme。


Windows 7的

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

对于那些仍然难住这个问题(我尝试了所有上述build议) –

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

我正在拉我的头发,正确设置我的PATHvariables – 仍然无济于事 – 然后只在我的registry中find“腾空”的Java条目,似乎是修复“失火”的Java运行时环境的一个死路一条。

通过使用Process Monitor观察我正在尝试开始的程序,为了窥探它在Java(运行时环境)registry中的位置,我高兴地发现它正在注册32位版本的registry项,在HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment

在这个关键字中,你应该find安装了不同Java版本(过去和/或现在)的子项。 点击最新版本的子项(例如我的子项目是1.7.0_25)。 点击该子项后,您将看到右侧列出的registrystring值,特别是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位)以及您正在使用的操作系统types – 32位或64位。 只要知道它们反映在registry中的不同位置(比如用于32位应用程序的Wow6432Node ,在我的情况下是在64位机器上安装了32位JDK)。

现在我已经更新了这两个registry值,我的程序运行完美无缺,没有更多的关于缺lessJava Runtime Environment(源自registry)的打扰或投诉。

Windows 7的

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

    要么

    • 点击开始button

      开始

    • 点击你的照片

      clickOnPhoto

  2. 更改我的环境variables

    更改我的环境变量

  3. 新…

    新

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

  4. JAVA_HOME添加为variables名称,将JDK位置添加为variables值>确定

    编辑系统变量ok

testing:

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

一个图像可以解决这个问题。 在这里输入图像描述

更多

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

使用searchfunction确保您的最新Java安装已列出; 那么确保它是被检查的那个。 这应该是一个JDK而不是JRE。

将您的Java目录添加到您的PATHvariables中时,您可能需要将其放在开头。 我有这个问题,把Java目录放在PATH的末尾是行不通的。 检查后,我发现我的Windows\System32目录中的java.exe ,它看起来像第一个赢得,当有几个文件具有相同的名称在您的PATH

我们需要区分在这里交替讨论的两个环境variables。 一个是JAVA_HOMEvariables。 另一个是Pathvariables。 任何引用JAVA_HOMEvariables的进程都在寻findJDK而不是JRE的searchpath。 JAVA_HOMEvariables的使用不适用于Java编译器本身。 编译器知道它自己的位置。 该variables是为了让其他软件更容易find编译器。 这个variables通常被IDE软件用来编译和构build来自Java源代码的应用程序。 相比之下,Windows CMD解释器以及许多其他第一方和第三方软件引用了Pathvariables,而不是JAVA_HOMEvariables。

用例1:从CMD编译

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

使用案例2:从IDE进行编译

但是,如果您正在使用一些IDE软件,那么您首先必须查看文档。 可能需要设置JAVA_HOME,但也可能使用其他variables名称来达到同样的目的。 多年来的事实标准一直是JAVA_HOME,但并不总是如此。

使用案例3:从IDE和CMD编译

如果除了IDE软件之外,还希望能够从CMD编译,而不依赖于当前的工作目录,那么除了 JAVA_HOMEvariables之外 ,还可能需要将JDKsearchpath附加到Pathvariables。

JAVA_HOME与path

如果您的问题涉及到编译Java,那么您需要检查JAVA_HOMEvariables和Path(如果适用)。 如果你的问题涉及到运行Java应用程序,那么你想检查你的pathvariables。

pathvariables通用于所有操作系统。 由于它是由系统定义的,并且是用于定位JRE的默认variables,所以运行Java应用程序几乎不会有任何问题。 特别是在软件安装程序通常为您设置所有内容的Windows上。 但是,如果您正在手动安装,最安全的做法可能是完全跳过JAVA_HOMEvariables,对于JDK和JRE都使用Pathvariables。 任何最新版本的IDE软件都应该能够select并使用它。

符号链接

符号链接可以提供另一种通过捎带现有环境variables之一来引用JDKsearchpath的方式。

我不确定以前版本的Oracle / Sun JDK / JRE版本,但是至lessjdk1.8.0_74的安装程序将searchpathC:\ProgramData\Oracle\Java\javapath到Pathvariables, 并将其放在string值的开始。 该目录包含JRE目录中的java.exe,javaw.exe和javaws.exe的符号链接。

所以至less在Java 8 JDK中,大概是Java 8 JRE独立版本,不需要为JRE完成环境variablesconfiguration。 只要您使用安装程序包进行设置即可。 但是,Windows安装可能存在差异。 请注意,Oracle JRE与JDK捆绑在一起。

如果你发现你的Java JDKconfiguration使用的是错误版本的编译器,或者它看起来像魔术一样工作,没有被明确地定义(不用施放这个咒语),那么你可能在你的环境variables中有一个符号链接。 所以你可能要检查符号链接。

以pipe理员身份运行Eclipse 。

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

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

如果你想在使用java之前制作一个可移植的 java并设置path,只需要创build一个batch file,我将在下面解释。

如果你想运行这个batch file,当你的计算机启动只需把你的batch file快捷方式启动文件夹。 在Windows 7启动文件夹是“C:\ Users \ user \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup”

像这样创build一个batch file:

 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是variables。 你可以根据你的意愿制作任何variables。 例如set amir=good_boy ,你可以通过%amir%看到amir,或者你可以看到java_home通过%java_home%

在这里大部分的解决scheme经过几个小时的工作后,只要安装32位的JDK,问题就解决了。