马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
不少老项目(尤其是传统 Java 后端)还锁在 JDK 1.8,而新系统默认装的是更高版本,于是就需要手工装一份 1.8 上去并与系统版本共存。本文讲清在 Linux 上手工部署 JDK 1.8 的完整步骤:下载、解压、配环境变量、验证,以及多版本共存时怎么切换。
一、选包与注意事项
手工装需要的是 tar.gz 形式的归档包(文件名形如 jdk-1.8.tar.gz),解压即用,不依赖包管理器。选包时有两点必须核对:
- 架构要对:
uname -m 输出的 x86_64 对应 64 位包,aarch64 要拿 ARM 版,装错了运行时会直接报 Exec format error。
- 来源要正规:优先从官方渠道或企业内部分发的归档获取,不要用来源不明的第三方打包版本。JDK 是含敏感操作的运行时,来路不明的二进制是供应链攻击的高风险点。
二、解压并放到规范目录
tar -xzvf jdk-1.8.tar.gz
sudo mkdir -p /usr/local/java
sudo mv jdk1.8.0_xxx /usr/local/java/
放 /usr/local/java 是约定俗成的做法,比放在 /opt 或家目录更容易被其他运维工具识别。
三、配置环境变量
编辑当前用户的 shell 配置:
vim ~/.bashrc
在末尾加上(路径换成实际解压出来的目录):
export JAVA_HOME=/usr/local/java/jdk1.8.0_xxx
export PATH=$JAVA_HOME/bin PATH
export CLASSPATH=. JAVA_HOME/lib/dt.jar JAVA_HOME/lib/tools.jar
让配置生效:
source ~/.bashrc
如果你用的是 zsh,改的是 ~/.zshrc,命令是 source ~/.zshrc。要让所有用户都生效,应该写进 /etc/profile.d/java.sh 而不是单个用户的 bashrc。
四、验证
java -version
javac -version
echo $JAVA_HOME
java -version 能打印出版本号,且里面带 1.8 字样,就说明装好了。如果打印的还是系统自带的版本,说明 PATH 顺序不对——JAVA_HOME/bin 必须排在系统路径前面。
五、多版本共存怎么切
用 update-alternatives 注册多个 JDK,随时切换:
sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.8.0_xxx/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.8.0_xxx/bin/javac 1
sudo update-alternatives --config java
注意 java 和 javac 要分别注册,只注册 java 的话,编译时用的还是另一个版本的 javac,会报奇怪的「class 版本不匹配」。
六、装完就跑不起来的六个常见坑
- 权限:解压目录被设成了 700,其他用户跑不起来,用
chmod -R 755 修正。
- 只配了 JAVA_HOME 没配 PATH:java 命令找不到。
- PATH 加在了错误位置:写成了
PATH=$PATH JAVA_HOME/bin,结果系统自带 java 先被命中,正确写法是把新路径放前面。
- 用 sudo 跑 java 时版本又变了:sudo 有自己的 secure_path,需要在 sudoers 里补,或直接用完整路径调用。
- jar 包需要的是 8 但实际是 11:报 UnsupportedClassVersionError,看清 52.0(=8)、55.0(=11)这类版本号。
- 系统里同时装了 openjdk 和这份 oracle jdk:两个都在 PATH 里,谁在前谁生效,用
which -a java 看全部命中项。
七、生产环境的建议
新机器优先用发行版仓库或内网源装 OpenJDK 8(一条 apt/yum 命令搞定,安全补丁跟得上),手工 tar.gz 更适合「内网隔离、必须用特定小版本」的场景。无论哪种方式,装完一定要跑一次真实的构建或启动一次应用做验证,只看 java -version 是不够的。
qidao123.com企服评测-应用市场 编辑提示
|