linux安装jdk,设置环境变量遇到的一个奇葩问题
2017-08-30 18:08
731 查看
最近打算玩玩Jenkins这玩意,在虚拟机上搭建的ubuntu系统(非桌面版本),jdk早就安装好,奈何出现了一个问题影响了,鼓捣了我大半天,问题如下:
在/etc/profile中设置的环境变量后,通过source /etc/profile后,一切现实OK,但是切换用户后,环境变量失效了,但是环境变量失效了,但是环境变量失效了(重要的事情说三遍),出现的问题如下:
程序 'java' 已包含在下列软件包中:
* default-jre
* gcj-4.9-jre-headless
* gcj-5-jre-headless
* openjdk-8-jre-headless
* gcj-4.8-jre-headless
* openjdk-9-jre-headless
请尝试:apt install <选定的软件包>
奈何重新source /etc/profile后,环境变量就好了。
分析问题原因:
本人的环境:
ubuntu版本:Ubuntu 17.04 \n \l
jdk版本:java version "1.7.0_79"
肯定是环境变量配置错误了,至于错在哪里,我不清楚,于是查找Ubuntu官网的资料。
官网中关于系统环境变量有如下分类:
While /etc/profile is often suggested for setting environment variables system-wide, it is a configuration file of the base-files package, so it's not appropriate to edit that file directly. Use a file in
/etc/profile.d instead as shown above. (Files in /etc/profile.d are sourced by
/etc/profile.)
/etc/default/locale is specifically meant for system-wide
locale environment variable settings. It's written to by the installer and when you use Language Support to set the language or regional formats system-wide. On a desktop system there is normally no reason to edit this file manually.
The shell config file /etc/bash.bashrc is sometimes suggested for setting environment variables system-wide. While this may work on Bash shells for programs started from the shell, variables set in that file are not available by default to
programs started from the graphical environment in a desktop session.
/ect/profile是经常被设置为系统环境变量的,但是不希望直接被编辑,使用/etc/profile.d代替。总结就是/etc/profile是不被被推荐使用作为环境变量的
ubuntu官网环境变量说明
1.解压jdk-8u131-linux-x64.tar.gz
sudo tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/local
2.设置环境变量
CLASSPATH=".:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar"
PATH="$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
注意:PATH中默认的值一个都不要删了,在原有的基础上面添加JAVA_HOME即可!
3.Ubuntu系统默认安装并使用OpenJDK,因此需要手动修改系统默认的JDK
sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.7.0_79/bin/java 300
注意:后面的java/javac路径是你在linux中安装java源文件的绝对路径
至此配置完成,输入java -version、javac或java检查是否配置成功。
在/etc/profile中设置的环境变量后,通过source /etc/profile后,一切现实OK,但是切换用户后,环境变量失效了,但是环境变量失效了,但是环境变量失效了(重要的事情说三遍),出现的问题如下:
程序 'java' 已包含在下列软件包中:
* default-jre
* gcj-4.9-jre-headless
* gcj-5-jre-headless
* openjdk-8-jre-headless
* gcj-4.8-jre-headless
* openjdk-9-jre-headless
请尝试:apt install <选定的软件包>
奈何重新source /etc/profile后,环境变量就好了。
分析问题原因:
本人的环境:
ubuntu版本:Ubuntu 17.04 \n \l
jdk版本:java version "1.7.0_79"
肯定是环境变量配置错误了,至于错在哪里,我不清楚,于是查找Ubuntu官网的资料。
官网中关于系统环境变量有如下分类:
1. /etc/environment
2. /etc/profile.d/*.sh
3. Other files
其中在Other files中有这样说道:While /etc/profile is often suggested for setting environment variables system-wide, it is a configuration file of the base-files package, so it's not appropriate to edit that file directly. Use a file in
/etc/profile.d instead as shown above. (Files in /etc/profile.d are sourced by
/etc/profile.)
/etc/default/locale is specifically meant for system-wide
locale environment variable settings. It's written to by the installer and when you use Language Support to set the language or regional formats system-wide. On a desktop system there is normally no reason to edit this file manually.
The shell config file /etc/bash.bashrc is sometimes suggested for setting environment variables system-wide. While this may work on Bash shells for programs started from the shell, variables set in that file are not available by default to
programs started from the graphical environment in a desktop session.
/ect/profile是经常被设置为系统环境变量的,但是不希望直接被编辑,使用/etc/profile.d代替。总结就是/etc/profile是不被被推荐使用作为环境变量的
ubuntu官网环境变量说明
那如何配置jdk的环境变量呢?
1.解压jdk-8u131-linux-x64.tar.gz
sudo tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/local 2.设置环境变量
2.1 在/etc/environment中编辑如下:
JAVA_HOME="/usr/local/jdk1.7.0_79"CLASSPATH=".:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar"
PATH="$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
注意:PATH中默认的值一个都不要删了,在原有的基础上面添加JAVA_HOME即可!
2.2 使用source命令使其生效
source /etc/environment 3.Ubuntu系统默认安装并使用OpenJDK,因此需要手动修改系统默认的JDK
sudo update-alternatives --install /usr/bin/java java /usr/local/jdk1.7.0_79/bin/java 300sudo update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.7.0_79/bin/javac 300
sudo update-alternatives --config java sudo update-alternatives --config javac
注意:后面的java/javac路径是你在linux中安装java源文件的绝对路径
至此配置完成,输入java -version、javac或java检查是否配置成功。
相关文章推荐
- linux下JDK安装,不同用户不同SHELL下环境变量设置
- linux查看java jdk安装路径和设置环境变量
- Linux安装完jdk后集中设置环境变量的方法,以及区别
- linux查看java jdk安装路径和设置环境变量
- linux查看java jdk安装路径和设置环境变量
- 在 Linux 下安装 JDK 和设置 JAVA 环境变量
- linux查看java jdk安装路径和设置环境变量
- linux查看java jdk安装路径和设置环境变量
- linux查看java jdk安装路径和设置环境变量
- 在Linux下Jdk的安装和Java环境变量的设置[转载]
- linux上安装jdk,设置环境变量
- linux环境下JDK安装及环境变量设置
- linux查看java jdk安装路径和设置环境变量
- linux查看java jdk安装路径和设置环境变量
- Ubuntu10.10(linux) 安装jdk1.6及环境变量的设置【转载】
- linux下面安装JDK设置环境变量的三种方法
- Linux下安装JDK并设置环境变量
- 在Linux上安装JDK及设置JAVA环境变量
- linux查看java jdk安装路径和设置环境变量
- linux查看java jdk安装路径和设置环境变量