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

我该如何解决这个问题?


当前回答

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

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

我绞尽脑汁,已经正确地设置了PATH变量——仍然无济于事——然后在我的注册表中只发现“空的”Java条目,似乎是修复“失败”的Java运行时环境的死胡同。

通过使用进程监视器来监视我试图开始的程序,以嗅出它在Java(运行时环境)的注册表中查找的位置,我得意地发现它在HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java运行时环境中查找32位版本的注册表项。

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

例如,在我的例子中,值(以前)分别设置在C:\Program Files (x86)\Java\jre7和C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll,这在我的机器上不存在。我必须将这些更新到C:\Program Files (x86)\Java\ jdk1.7.0_25\jre和C:\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运行时环境的抱怨(源于注册表)。

其他回答

查找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安装路径后:

右键单击桌面上的“我的电脑”图标,选择“属性”。 单击高级选项卡,然后单击环境变量按钮。 在“系统变量”下单击“新建”。 输入变量名JAVA_HOME。 输入变量值作为Java Development Kit的安装路径。 单击OK。 单击“应用更改”。

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

完整的文章在我的博客上:在Windows中设置JAVA_HOME变量。

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

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

我绞尽脑汁,已经正确地设置了PATH变量——仍然无济于事——然后在我的注册表中只发现“空的”Java条目,似乎是修复“失败”的Java运行时环境的死胡同。

通过使用进程监视器来监视我试图开始的程序,以嗅出它在Java(运行时环境)的注册表中查找的位置,我得意地发现它在HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java运行时环境中查找32位版本的注册表项。

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

例如,在我的例子中,值(以前)分别设置在C:\Program Files (x86)\Java\jre7和C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll,这在我的机器上不存在。我必须将这些更新到C:\Program Files (x86)\Java\ jdk1.7.0_25\jre和C:\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运行时环境的抱怨(源于注册表)。

一个映像可以解决这个问题。

更多的

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

设置Java主页

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

有了JDK安装路径后:

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

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

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

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

这是从www.java.com -此处设置Java环境的官方解决方案。

有针对Windows 7、Windows Vista、Windows XP、Linux/Solaris和其他shell的解决方案。


例子

Windows 7 Select Computer from the Start menu Choose System Properties from the context menu Click Advanced system settings -> Advanced tab Click on Environment Variables, under System Variables, find PATH, and click on it. In the Edit windows, modify PATH by adding the location of the class to the value for PATH. If you do not have the item PATH, you may select to add a new variable and add PATH as the name and the location of the class as the value. Reopen Command prompt window, and run your Java code.