Windows 7如何设置java_home ?

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

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

我该如何解决这个问题?

1642230 次浏览

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

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

-Djava.home=YOUR_PATH_HERE

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

java -Djava.home=PATH SomeJavaApp

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

如果你的应用程序只在你作为当前用户登录时运行,那么把它放在用户变量中——如果它需要为系统上的所有用户运行,那么把它放在系统变量中。

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

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

以管理员身份运行Eclipse

这解决了我的问题。我还在研究背后的逻辑。

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

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

查找JDK安装目录

首先,您需要知道Java Development Kit的安装路径。

打开JDK默认安装路径:

C:\Program Files\Java

应该有这样的子目录:

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

注意:,一个人只需要把路径到jdk没有/bin(建议在很多地方)。C:\Java\jdk1.8.0_172\bin !


设置JAVA_HOME变量

有了JDK安装路径后:

  1. 右键单击桌面上的我的电脑图标并选择属性
  2. 单击先进的选项卡,然后单击环境变量按钮。
  3. 系统变量下,单击New。
  4. 输入变量名JAVA_HOME
  5. 输入变量值作为Java Development Kit的安装路径。
  6. 单击好吧
  7. 单击申请更改

注意:你可能需要重启Windows

完整的文章在这里,在我的博客:在Windows中设置JAVA_HOME变量

这是官方解决方案,用于从www.java.com - 在这里设置Java环境。

windows 7、windows Vista、windows XP、Linux/Solaris和其他shell都有解决方案。


例子

Windows 7

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

在将Java目录添加到PATH变量时,你可能想把它放在变量的开头。我有一个问题,把Java目录放在PATH的末尾将不起作用。经过检查,我在我的Windows\System32目录中找到了java.exe,它看起来像第一个胜出,当你的PATH中有几个同名文件时…

你必须首先在你的系统中安装JDK

设置Java主页

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

有了JDK安装路径后:

  • 右键单击“我的电脑”图标
  • 选择Properties。
  • 单击屏幕左侧的高级系统设置选项卡
  • 一个预先弹出窗口打开。
  • 点击环境变量按钮。

enter image description here

  • 在“系统变量”下单击“新建”。
  • 输入变量名JAVA_HOME。
  • 输入变量值作为Java Development Kit的安装路径。
  • 单击OK。
  • 单击“应用更改”。

在“system variable”下设置“JAVA Path”

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

check here

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

如果你使用的是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,在我的例子中,32位JDK安装在64位机器上)。

现在我已经更新了这两个注册表值,我的程序运行得完美无缺,不再出现问题或关于缺少Java运行时环境的抱怨(源于注册表)。

在对这里的大多数解决方案进行了数小时的研究之后,我只需要安装32位JDK就解决了这个问题。

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

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


echo %JAVA_HOME%


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


echo %PATH%

Windows 7

  1. 使用浏览器(不是Internet Explorer)访问控制面板\所有控制面板项\用户帐户

    • 点击开始按钮

      start < / p >

    • 点击你的图片

      clickOnPhoto < / p >

    • 李< / ul > < / >
    • < p > 改变环境变量

      Change my environment variables < / p >

    • < p > 新…

      new

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

    • JAVA_HOME添加为变量名,将JDK位置添加为变量值> OK

      edit system variable ok < / p >

测试:

  • 打开控制台(cmd)
  • <李> set JAVA_HOME类型
    • 期望输出:JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
    • 李< / ul > < / >

一个图像可以修复这个问题。 enter image description here < / p >

For More

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

如果你想在使用java之前创建一个< em >便携式< / em > java并设置路径,只需创建一个下面解释的批处理文件。

如果您想在计算机启动时运行此批处理文件,只需将批处理文件快捷方式放在启动文件夹中。在windows 7的启动文件夹是“C:\Users\user\AppData\漫游\Microsoft\ windows \开始菜单\程序\启动”

做一个这样的批处理文件:

set Java_Home=C:\Program Files\Java\jdk1.8.0_11
set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_11\bin
< p >注意: java_homepath是变量。你可以随意设置任何变量。 例如set amir=good_boy,你可以通过%amir%看到amir,或者通过%java_home%看到java_home

我们需要区分这里交替讨论的两个环境变量。一个是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 vs. Path

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

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和javaw.exe的符号链接。

因此,至少对于Java 8 JDK,以及独立的Java 8 JRE,不需要为JRE进行环境变量配置。只要你使用安装包来设置它。不过,Windows安装可能会有不同。注意,Oracle JRE是与JDK捆绑在一起的。

如果您发现您的Java JDK配置使用了错误的编译器版本,或者它看起来像魔术一样工作,而没有显式地定义(没有施咒),那么您的环境变量中可能有一个符号链接。你可能需要检查符号链接。

goto Mycomputer(这台PC) ->右键单击->选择属性->高级系统设置->环境变量->在系统变量单击“”按钮并在变量名中写入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"

你可能想在Windows/System32文件夹中找到以下文件: ——java.exe ——javaw.exe ——javaws.exe < / p >

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

这也意味着最好手动安装Java,不需要安装程序,这样您就可以随意使用它。