linux安装jdk,设置环境变量遇到的一个奇葩问题

最近打算玩玩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官网的资料。


官网中关于系统环境变量有如下分类:

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 300

sudo 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检查是否配置成功。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值