快速提高网站权重提升,成都建筑设计公司排名,高端vi设计机构,无锡网站建设详细内容一、背景
由于不同项目对jdk版本的要求不同#xff0c;有些是要求jdk11#xff0c;有些只需要jdk8即可。 而linux机器上安装jdk的方式又多种多样#xff0c;最后导致jenkins打包到底使用的是哪个jdk#xff0c;比较混乱。
1、java在哪 whereis java
java: /usr/bin/…一、背景
由于不同项目对jdk版本的要求不同有些是要求jdk11有些只需要jdk8即可。 而linux机器上安装jdk的方式又多种多样最后导致jenkins打包到底使用的是哪个jdk比较混乱。
1、java在哪 whereis java
java: /usr/bin/java /opt/jdk-11.0.17/bin/java /opt/jdk1.8.0_351/bin/java /usr/share/man/man1/java.1可以看到这里有三个java版本
/usr/bin/java (原先安装的jdk)/opt/jdk-11.0.17/bin/java/opt/jdk1.8.0_351/bin/java (新安装的jdk期望使用该版本)
这里的安装方式有两种
update-alternatives 多版本管理软件第一个手动安装后两者
2、什么是update-alternatives 在 CentOS 和许多其他 Linux 发行版中/etc/alternatives 目录是用来管理软件的多个版本的。这是一个系统级别的工具用于在安装了多个版本的同一软件时选择默认版本。 对于 Java当你安装不同版本的 JDK 时每个版本的二进制文件如 java, javac, javadoc 等都会被放置在 /etc/alternatives 目录下并且会创建指向这些二进制文件的符号链接symlink。这些符号链接位于 /usr/bin 目录下以便用户可以通过标准的命令行接口访问这些工具。
见/usr/bin目录下
例如如果你运行 java -version系统实际上是在运行 /etc/alternatives/java 指向的版本。/etc/alternatives 目录中的每个 Java 相关文件都是一个脚本它检查 JAVA_HOME 环境变量如果设置了就使用它如果没有设置它会使用 update-alternatives 系统配置的默认值。 update-alternatives --config javaThere is 1 program that provides java.Selection Command
-----------------------------------------------
* 1 /usr/java/jdk1.8.0_181-amd64/jre/bin/javaEnter to keep the current selection[], or type selection number:3、手动安装jdk
解压缩至某个目录然后配置jdk环境变量。
export JAVA_HOME/opt/jdk1.8.0_351
export PATH$PATH:$JAVA_HOME/bin二、到底用的是哪个jdk
1、maven
当你执行mvn -v命令看到它使用的jdk是我们期望的/opt/jdk1.8.0_351/bin/java版本。 mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:1408:00)
Maven home: /opt/maven
Java version: 1.8.0_351, vendor: Oracle Corporation, runtime: /opt/jdk1.8.0_351/jre
Default locale: en_US, platform encoding: UTF-8
OS name: linux, version: 2.6.32-642.el6.x86_64, arch: amd64, family: unix所以在jenkins机器上手动mvn package打包没问题。
但是当你执行java -version的时候发现并不是/opt/jdk1.8.0_351/bin/java java -version
java version 1.8.0_181
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)说明虽然设置了JAVA_HOME环境变量但是/usr/bin/java的优先级更高。
这一点我们从whereis java的顺序也可以看出。
2、jenkins
在没有设置JAVA_HOME的情况下默认使用的jdk是/usr/java/jdk1.8.0_181-amd64/jre/bin/java
所以第一次打包报错 三、jenkins系统设置 指定JAVA_HOME环境变量明确jenkins在众多jdk中选择哪个jdk JAVA_HOME : /opt/jdk1.8.0_351
再次打包jenkins就能选择出你所需的jdk版本。