She*_*har 2 java environment-variables ubuntu-11.04
我正在尝试JAVA_HOME在 Ubuntu 操作系统中进行设置。我已经复制jdk 1.7并/usr/lib/jvm设置JAVA_HOME在/etc/profile文件中。
文件夹内容/usr/lib/jvm如下:
shekhar@ubuntu:~$ ls /usr/lib/jvm/
default-java java-1.6.0-openjdk java-6-openjdk java-6-openjdk-i386 jdk1.7.0_01
java-1.5.0-gcj-4.6 java-1.6.0-openjdk-i386 java-6-openjdk-common java-7-openjdk-i386
Run Code Online (Sandbox Code Playgroud)
文件的最后几行/etc/profile如下:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_01
export PATH=$PATH:$JAVA_HOME/bin
Run Code Online (Sandbox Code Playgroud)
完成所有这些后,当我运行java -version命令时,我得到以下输出:
shekhar@ubuntu:~$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)
当我运行ls -lah命令时,我得到以下输出:
shekhar@ubuntu:~$ ls -lah /usr/bin/java
lrwxrwxrwx 1 root root 22 Sep 29 09:58 /usr/bin/java -> /etc/alternatives/java
shekhar@ubuntu:~$ ls -lah /etc/alternatives/java
lrwxrwxrwx 1 root root 45 Sep 29 09:58 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我错过了什么?为什么Ubuntu仍然指向open jdk而不是我的jdk 7?
PS:我已经看到了这个类似的问题及其答案,但该问题与 Windows 操作系统有关,而不是与 Ubuntu 相关,因此我为 Ubuntu 重新发布了这个类似的问题。
您设置了 JAVA_HOME 环境变量,然后使用它来设置 PATH。但是,您设置的路径也包含现有路径。本质上,您只是在现有路径中添加了其他内容。
路径末尾添加了 JDK1.7 的路径。当您在命令行中键入“java --version”时,系统会从头到尾搜索路径,直到找到包含命令“java”的路径。因此,您看到的是其他 Java 版本之一的版本输出。
我在 Ubuntu 上通常做的是查看我的路径:
echo $PATH
Run Code Online (Sandbox Code Playgroud)
然后在开头附近寻找可能的 JVM 路径。那时,您有多种选择来解决此问题:
创建一个符号链接,将系统指向新的 Java 路径。
删除旧的 Java 版本并将其从您的路径中删除。
我会选择选项 2。去掉不需要的东西不会那么混乱。
| 归档时间: |
|
| 查看次数: |
13424 次 |
| 最近记录: |