我在控制面板的“system”中找到了环境变量,并创建了两个新变量,一个用于用户变量,另一个用于系统变量。两人都被命名为javau 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
我怎样才能解决这个问题?
11条答案
按热度按时间yzuktlbb1#
查找jdk安装目录
首先,您需要知道java开发工具包的安装路径。
打开jdk的默认安装路径:
应该有如下子目录:
注意:只需将jdk的路径放在末尾,而不带/bin(在很多地方都建议这样做)。e、 g.c:\java\jdk1.8.0\u 172而不是c:\java\jdk1.8.0\u 172\bin!
设置java\u home变量
一旦有了jdk安装路径:
右键单击桌面上的“我的电脑”图标,然后选择“属性”。
单击advanced选项卡,然后单击environment variables按钮。
在“系统变量”下,单击“新建”。
输入变量名为java\u home。
输入变量值作为java开发工具包的安装路径。
单击“确定”。
单击应用更改。
注意:您可能需要重新启动windows
完整的文章在这里,在我的博客上:在windows中设置java\u home变量。
arknldoa2#
对我有效的是添加
%JAVA_HOME%\bin
使用JAVA_HOME
环境变量指向jdk
文件夹。uqdfh47h3#
您必须首先在系统中安装jdk。
设置java主页
java\u home=c:\program files\java\jdk1.7.0[jdk安装目录的位置]
一旦有了jdk安装路径:
右键单击上的“我的电脑”图标
选择属性。
单击屏幕左侧的高级系统设置选项卡
高级弹出窗口已打开。
单击环境变量按钮。
在“系统变量”下,单击“新建”。
输入变量名为java\u home。
输入变量值作为java开发工具包的安装路径。
单击“确定”。
单击应用更改。
在系统变量下设置java路径
路径=c:\program files\java\jdk1.7.0[[用分号追加值]
mitkmikd4#
在cmd中(暂时用于该cmd窗口):
r3i60tvu5#
你得把它调成
C:\Sun\SDK\jdk
(假设这是安装jdk的地方-它不是默认的)-不要将\bin放入C:\Sun\SDK\jdk\bin
.如果您的应用程序仅在以当前用户身份登录时运行,则将其放入用户变量中-如果需要为系统上的所有用户运行,则将其放入系统变量中。
您可能还需要添加
%JAVA_HOME%\bin
到路径(还取决于是从用户还是从所有用户(包括系统)运行它)wf82jlnq6#
http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html
控制面板>java,java选项卡,单击view按钮。在运行时参数中,输入:
或者在执行java时,可以将命令行开关添加到命令中:
atmip9wb7#
一张图片就可以解决这个问题。
更多
xv8emn3q8#
对于那些仍然被这个问题困扰的人(我尝试了以上所有的建议)--
如果您使用的是64位版本的windows,并且安装了32位jdk
PATH
变量,您可能还需要调整注册表变量。我把头发拔了出来,把头发放好了
PATH
变量——仍然没有用——然后在我的注册表中只找到“空出”的java条目,这似乎是修复“错误启动”的java运行时环境的死路一条。通过使用
Process Monitor
为了观察我试图启动的程序,为了嗅出它在registryforjava(运行时环境)中的位置,我成功地发现它正在查找32位版本的注册表项,在HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment
.在该键中,您应该可以找到已安装的不同java版本(过去和/或现在)的子键。单击最新版本的子项(例如,我的子项当前为1.7.0\u 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位。只需知道它们反映在注册表中的不同位置(如
Wow6432Node
对于32位应用程序,在我的例子中是安装在64位机器上的32位jdk)。现在,我已经更新了这两个注册表值,我的程序运行得完美无瑕,不再有关于缺少java运行时环境(源于注册表)的打嗝或抱怨。
vi4fp9gy9#
这是设置java环境的官方解决方案www.java.com -在这里。
有针对windows的解决方案 7、Windows vista、windows xp、linux/solaris和其他shell。
示例
视窗7
从“开始”菜单中选择“计算机”
从关联菜单中选择“系统属性”
单击高级系统设置->高级选项卡
单击环境变量,在系统变量下,找到路径,然后单击它。
在编辑窗口中,通过将类的位置添加到path的值来修改path。如果没有项路径,则可以选择添加新变量,并将path作为名称,将类的位置作为值。
重新打开命令提示符窗口,运行java代码。
qpgpyjmq10#
视窗7
转到控制面板\所有控制面板项目\使用资源管理器的用户帐户(不是internet explorer!)
或者
单击开始按钮
点击你的图片
更改我的环境变量
新建。。。
(如果您没有足够的权限将其添加到“系统变量”部分,请将其添加到“用户变量”部分)
将javau home添加为变量名,将jdk位置添加为variable value>ok
测试:
打开新控制台(cmd)
类型
set JAVA_HOME
预期产量:JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
gab6jxml11#
我们需要在这里互换讨论的两个环境变量之间进行区分。一个是javau home变量。另一个是路径变量。任何引用javahome变量的进程都在寻找jdk的搜索路径,而不是jre。使用javahome变量并不是为了java编译器本身。编译器知道自己的位置。这个变量是为了让其他软件更容易找到编译器。ide软件通常使用此变量,以便从java源代码编译和构建应用程序。相比之下,windows cmd解释器和许多其他第一方和第三方软件引用的是path变量,而不是java\u home变量。
用例1:从cmd编译
例如,如果您不使用任何ide软件,并且只希望能够从cmd编译,而不依赖于当前的工作目录,那么您需要的是正确设置path变量。在您的例子中,甚至不需要java\u home变量。因为cmd使用的是path,而不是javahome来定位java编译器。
用例2:从ide编译
但是,如果您使用的是一些ide软件,那么首先必须查看文档。它可能需要设置javahome,但也可能使用另一个变量名来实现相同的目的。多年来,事实上的标准一直是javau home,但情况并非总是如此。
用例3:从ide和cmd编译
如果除了ide软件之外,您还希望能够从cmd编译,独立于当前的工作目录,那么除了java\u home变量之外,您可能还需要将jdk search path附加到path变量。
java\u主页与路径
如果您的问题与编译java有关,那么您需要检查java\u home变量和path(如果适用)。如果您的问题与运行java应用程序有关,那么您需要检查path变量。
path变量在所有操作系统中通用。因为它是由系统定义的,而且因为它是用于定位jre的默认变量,所以运行java应用程序几乎没有任何问题。尤其不是在windows上,在windows上,软件安装程序通常会为你设置一切。但是,如果您是手动安装,最安全的做法可能是完全跳过javahome变量,对jdk和jre都使用path变量。任何最新版本的ide软件都应该能够使用它。
符号链接
符号链接可以提供另一种引用jdk搜索路径的方法,方法是借助一个现有的环境变量。
我不确定以前版本的oracle/sunjdk/jre发行版,但至少jdk1.8.0\u74的安装程序附加了搜索路径
C:\ProgramData\Oracle\Java\javapath
,并将其放在字符串值的开头。此目录包含指向jre目录中java.exe、javaw.exe和javaws.exe的符号链接。因此,至少在Java8JDK中,也可能是Java8JRE独立版,不需要为jre进行环境变量配置。只要使用安装程序包进行设置。但是,您的windows安装可能存在差异。注意,oraclejre与jdk捆绑在一起。
如果您发现您的javajdk配置使用了错误的编译器版本,或者它似乎是通过魔术工作的,而没有显式定义(没有施法),那么您的环境变量中可能有一个符号链接。所以你可能需要检查