在Linux上配置Java环境

Entropy Lv4

基于Ubuntu20.04LTS配置Java环境

在Linux上配置Java环境的方式有3种, 系统级配置、用户级配置、临时配置

配置好Java环境就能够在Linux上运行基于Java环境运行的相关程序, 你可以在Linux系统上搭建基于Java实现的网站。这里以系统级配置为例, 适合个人开发者使用

1.下载tar.gz压缩包

Java官网 下载tar.gz包, 可以先下载到windows中, 再通过远程文件传输工具, 将压缩包传送到Linux的目录下, 也可以直接在Linux服务器中使用命令下载到指定目录

本文使用的是jdk-8u151-linux-i586.tar.gz包, 高版本可能有所区别, 32位与64位版本在不同linux发行版上可能有所区别

2.在Linux中配置环境

1.前提准备

默认当前目录是初始目录/root, 默认当前用户权限为root权限, 默认tar.gz包已经传送到/root目录下

2.创建用于存放Java文件夹的目录
1
sudo mkdir /usr/java
3.解压tar.gz压缩包到该目录
1
sudo tar -zxvf jdk-8u151-linux-i586.tar.gz -C /usr/java
4.编辑环境变量文件
1
sudo vim /etc/profile

在文件末尾追加下面内容, 具体目录根据实际情况编写

1
2
3
4
export JAVA_HOME=/usr/java/jdk1.8.0_151
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

一些特殊符号说明

:表示并列符号, 说明某个变量的值有多个, 用:来区分。相当于Windows下的 ;

$表示引用变量, {} 则用于限定变量边界, 如上面的${JAVA_HOME}就表示/usr/java/jdk1.8.0_151

5.使环境变量马上生效
1
source /etc/profile

3.测试Java环境

运行以下命令, 如果都成功运行, 则说明Java环境配置完成

1
2
3
java -version
java
javac
可能遇到的问题

安装i586后缀jdk, 即安装32位的jdk后测试Java环境时提示bash: /usr/lib/java/jdk1.8.0_151/bin/java: 没有那个文件或目录, 可能是由于当前Linux发行版默认没有用于amd64系统的32位libc开发包

可通过以下5个常用命令查看Linux发行版的架构信息

1
2
3
4
5
6
7
8
uname -a
dpkg --print-architecture # 这条命令只适用于基于Debian和Ubuntu的Linux发行版
getconf LONG_BIT
arch
file /sbin/init
# file命令需要配合它链接的另一个文件使用
# 在Ubuntu中是链接的是/lib/systemd/systemd
# 通过file /lib/systemd/systemd查看到架构信息
安装缺失的32位开发包
1
sudo apt-get install libc6-i386

如果安装libc6-i386失败, 请先更新软件列表, 再尝试重新安装, 并重新测试Java环境

1
sudo apt-get update

如果还是失败请选择64位的jdk版本重新进行配置

重新测试Java环境

4.update-alternatives软件版本管理

1.系统注册jdk(需要使用多个jdk版本时)
1
sudo update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_151/bin/java 300

参数说明

第一个参数: --install表示向update-alternatives注册服务名

第二个参数: 注册最终地址, 成功后将会把命令在这个固定的目的地址做真实命令的软链接, 通过管理这个软链就能实现不同版本jdk的切换

第三个参数: 服务名, 管理时以它为关联依据

第四个参数: 被管理命令的绝对路径

第五个参数: 优先级, 数字越大优先级越高

2.交互式修改

如果有多个版本的jdk, 可执行下面的命令通过交互界面进行切换

1
sudo update-alternatives --config java

查看多个版本的jdk以及当前状态

1
sudo update-alternatives --display java

调整为auto模式, 如果上面查看的状态是manual, 则还不能自动选择优先级高的jdk版本, 需要调整为auto模式

1
sudo update-alternatives --auto java

5.补充

将上述的/etc/profile替换成~/.bashrc就是用户级配置

/etc/profile: 此文件为系统的每个用户设置环境信息, 当用户第一次登录时, 该文件被执行, 是系统全局对终端环境的设置, 它是login时最先被系统加载的, 是它调用了/etc/bashrc, 以及/etc/profile.d目录下的*.sh文件, 如果有一个软件包, 系统上只安装一份, 供所有开发者使用, 建议在/etc/profile.d下创建一个新的xxx.sh, 配置环境变量

~/.bashrc: 是用户相关的终端(shell)的环境设置, 通常打开一个新终端时, 默认会加载里面的设置, 在这里的设置不会影响其它用户。如果一个服务器多个开发者使用, 需要配置多个sdk, 则推荐使用该设置

  • 标题: 在Linux上配置Java环境
  • 作者: Entropy
  • 创建于 : 2022-11-26 14:20:08
  • 更新于 : 2023-10-21 12:20:48
  • 链接: https://www.entropy-tree.top/2022/11/26/java-in-linux/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
此页目录
在Linux上配置Java环境