我在控制面板的"系统"中找到了环境变量,并创建了两个新变量,一个用于用户变量,另一个用于系统变量.两者都被命名为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
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
我是Linux系统的新手,似乎有太多的Java文件夹.
java -version给了我:
当我尝试构建Maven项目时,我收到错误:
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/java/jdk1.7.0_05/bin/java
Run Code Online (Sandbox Code Playgroud)
你能否告诉我需要为root用户修改哪些文件以及非root用户以及java的确切位置?
在Ubuntu中,我想在Java 5和6之间来回切换我的JAVA_HOME环境变量.
我打开一个终端并输入以下内容来设置JAVA_HOME环境变量:
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
Run Code Online (Sandbox Code Playgroud)
在同一个终端窗口中,我键入以下内容以检查环境变量是否已更新:
echo $JAVA_HOME
Run Code Online (Sandbox Code Playgroud)
我看到/usr/lib/jvm/java-1.5.0-sun这是我期待看到的.另外,我修改〜/ .profile并将JAVA_HOME环境变量设置为/usr/lib/jvm/java-1.5.0-sun.
现在针对这个问题 - 当我打开一个新的终端窗口并通过键入echo $ JAVA_HOME来检查我的JAVA_HOME环境变量时,我看到我的JAVA_HOME环境变量已经恢复为Java 6.当我重启我的机器(或日志)时我猜想,JAVA_HOME环境变量设置为Java 5(可能是因为我在〜/ .profile中进行了修改).
有没有解决的办法,这样我可以改变我的JAVA_HOME环境,而无需注销并重新登录的(并作出环境变量的变化坚持在所有新的终端窗口)?
我知道它已安装,因为当我键入:
$java -version
Run Code Online (Sandbox Code Playgroud)
我明白了:
OpenJDK Runtime Environment (IcedTea6 1.12.5) (6b27-1.12.5-0ubuntu0.12.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)
当我输入:
$locate jdk
Run Code Online (Sandbox Code Playgroud)
我明白了:
/home/arturo/Documents/2012a/sys/java/jre/glnxa64/jre/lib/servicetag/jdk_header.png
/usr/share/app-install/desktop/openjdk-6-jre:openjdk-6-java.desktop
/usr/share/app-install/desktop/openjdk-7-jre:openjdk-7-java.desktop
/usr/share/app-install/icons/openjdk-6.png
/usr/share/app-install/icons/openjdk-7.png
Run Code Online (Sandbox Code Playgroud)
令我担心的是列表中的第一项是2012a文件夹是我的MATLAB文件夹而不是标准的'usr/lib'文件夹.我真的很困惑JDK和JRE的安装位置,因为我需要设置指向该文件夹的$ JAVA_HOME路径.我在哪里错过了什么?
如何将JAVA_HOMEUbuntu中的值更改为指向Oracle的Java?
应该指向java-6-sun还是java-6-sun-1.6.0.24?
(不确定这是否应该继续使用SU ...迁移肯定是一种选择,但更多的程序员在这里阅读问题,所以这里也是如此).
我正在运行Mac OS X 10.8.4,我安装了Apple的JDK 1.6.0_51以及Oracle的JDK 1.7.0_25.我最近为一些需要它的预发布软件安装了Oracle的1.8预览JDK.现在,当我运行/ usr/libexec/java_home时,我得到了这个:
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
1.8.0, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
1.7.0_25, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
1.6.0_51-b11-457, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_51-b11-457, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
大.
但是,运行:
$ java -version
Run Code Online (Sandbox Code Playgroud)
返回:
java version "1.8.0-ea"
Run Code Online (Sandbox Code Playgroud)
这意味着Java的默认版本目前是预发布版本,它打破了一些"普通"软件包(在我的情况下,VisualVM).
我无法设置,JAVA_HOME因为启动应用程序忽略环境变量,即使从命令行启动(例如$ open /Applications/VisualVM.app).
那么,是否有一个我可以编辑的文件,我可以在全局设置我的JVM订购首选项?
(请不要告诉我启动Java Preferences Panel,因为它根本不起作用:它不包含任何有用的东西,只列出我安装的4个JVM之一.)
更新:
Oracle JVM存在于/Library/Java/JavaVirtualMachines.重命名JDK 1.8目录jdk1.8.0.jvm.xyz不会改变任何东西:java_home仍然在正确的位置找到它,并且运行/ usr/bin/java仍然执行1.8 JVM.这不是synlinks等的问题.
类似问题的答案
虽然这个答案 …
我指出了JAVA_HOME到C:\Program Files (x86)\Java\jre7.它工作正常.之后,我解压缩了ant并设置了与Ant相关的环境变量,输入后我收到以下错误信息"ant -version"

我搜索了这个论坛.看起来一个解决方案是将Java指向JDK而不是JRE.我不确定这是否应该是解决方案.换句话说,一般来说,哪一个应该JAVA_HOME指向?JDK还是JRE?
许多基于java的应用程序需要设置JAVA_HOME env变量.这个变量的目的是什么?
在Windows中,JAVA_HOME必须指向JDK安装文件夹(因此JAVA_HOME/bin包含所有可执行文件并JAVA_HOME/libs包含所有默认jar库).
如果我下载Sun的JDK软件包并在Linux中安装它,则程序相同.
但是,我需要使用Kubuntu的默认OpenJDK包.问题是所有可执行文件都放在/usr/bin.但是放入罐子里/usr/share/java.由于它们不在同一个JAVA_HOME文件夹下,我遇到了Grails的问题,并且可能会遇到其他需要标准Java结构的应用程序.
如果我使用:
JAVA_HOME=/usr
Run Code Online (Sandbox Code Playgroud)
所有想要使用任何Java可执行文件的应用程序和脚本都可以使用标准过程call $JAVA_HOME/bin/executable.然而,由于罐子在不同的地方,它们并不总是被发现(例如:我正在ClassDefNotFound寻找的grails native2ascii).
另一方面,如果我使用:
JAVA_HOME=/usr/share/java
Run Code Online (Sandbox Code Playgroud)
在Java可执行文件(没有java,javac等等)都可以找到.
那么,JAVA_HOME在基于Debian的Linux 中处理变量的正确方法是什么?
谢谢你的帮助,路易斯
我刚刚下载了Android Studio.在尝试运行它时,我不得不修改环境变量并添加
JAVA_HOME
和
C:\ PROGRA〜2 \的Java\jdk1.6.0_22
一旦我完成了这个障碍,现在我收到了另一个错误:
The environment variable JAVA_HOME (with the value of *C:\Progra~2\Java\jdk1.6.0_22*) does not point to a valid JVM installation.
Run Code Online (Sandbox Code Playgroud)
我查看了其他类似的问题,我被要求检查版本,所以我在CMD中做了以下事情:
C:\Users\Andre>java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)
C:\Users\Andre>javac -version
javac 1.6.0_22
Run Code Online (Sandbox Code Playgroud)
从结果看来我似乎有JVM.
我也为JAVA_HOME尝试了这些路径,每次关闭并重新打开一个新的CMD窗口
C:\Program Files (x86)\Java\jre7
C:\Program Files (x86)\Java\jre6
C:\Program Files (x86)\Java\jdk1.6.0_22
C:\Program Files (x86)\Java\jre7\bin
C:\Program Files (x86)\Java\jre6\bin
C:\Program Files (x86)\Java\jdk1.6.0_22\bin
Run Code Online (Sandbox Code Playgroud)