centos安装JDK和Maven

centos安装JDK和Maven

有时候我们可能会需要直接在centos中用maven编译java项目并运行项目,那么就需要在centos中安装jdk和maven。安装jdk的时候有两种方式:

  1. 通过yum install
  2. 下载jdk包手动安装

安装JDK

用yum安装

先说结论:如果需要能在centos执行maven编译的话,需要执行如下命令安装jdk:yum install java-1.8.0-openjdk-devel.x86_64
正文开始:
用yum安装的时候需要选择好对应的包。
如果你是执行如下命令(参考的这篇文章:How to Install Apache Maven on CentOS 7):

yum install java-1.8.0-openjdk

那么在maven编译的时候会报如下错误:

[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

因为这个只是安装了JRE环境,只能运行java程序,没有javac,不能进行编译操作。

所以要选好正确的包,此处我们需要在centos直接编译,所以需要带有java编译器的版本:

  1. 首先查看一下有哪些包可以选择:
yum list java*

显示大致结果如下:

已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
已安装的软件包
java-1.8.0-openjdk.x86_64                                                                                              1:1.8.0.402.b06-1.el7_9                                                                                    @updates
java-1.8.0-openjdk-headless.x86_64                                                                                     1:1.8.0.402.b06-1.el7_9                                                                                    @updates
javapackages-tools.noarch                                                                                              3.4.1-11.el7                                                                                               @base   
可安装的软件包
java-1.6.0-openjdk.x86_64                                                                                              1:1.6.0.41-1.13.13.1.el7_3                                                                                 base    
java-1.6.0-openjdk-demo.x86_64                                                                                         1:1.6.0.41-1.13.13.1.el7_3                                                                                 base    
java-1.6.0-openjdk-devel.x86_64                                                                                        1:1.6.0.41-1.13.13.1.el7_3                                                                                 base    
java-1.6.0-openjdk-javadoc.x86_64                                                                                      1:1.6.0.41-1.13.13.1.el7_3                                                                                 base    
java-1.6.0-openjdk-src.x86_64                                                                                          1:1.6.0.41-1.13.13.1.el7_3                                                                                 base    
java-1.7.0-openjdk.x86_64                                                                                              1:1.7.0.261-2.6.22.2.el7_8                                                                                 base    
java-1.7.0-openjdk-accessibility.x86_64                                                                                1:1.7.0.261-2.6.22.2.el7_8                                                                                 base    
java-1.7.0-openjdk-demo.x86_64                                                                                         1:1.7.0.261-2.6.22.2.el7_8                                                                                 base    
java-1.7.0-openjdk-devel.x86_64                                                                                        1:1.7.0.261-2.6.22.2.el7_8                                                                                 base    
java-1.7.0-openjdk-headless.x86_64                                                                                     1:1.7.0.261-2.6.22.2.el7_8                                                                                 base    
java-1.7.0-openjdk-javadoc.noarch                                                                                      1:1.7.0.261-2.6.22.2.el7_8                                                                                 base    
java-1.7.0-openjdk-src.x86_64                                                                                          1:1.7.0.261-2.6.22.2.el7_8                                                                                 base    
java-1.8.0-openjdk.i686                                                                                                1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-1.8.0-openjdk-accessibility.i686                                                                                  1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-1.8.0-openjdk-accessibility.x86_64                                                                                1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-1.8.0-openjdk-demo.i686                                                                                           1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-1.8.0-openjdk-demo.x86_64                                                                                         1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-1.8.0-openjdk-devel.i686                                                                                          1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-1.8.0-openjdk-devel.x86_64                                                                                        1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-1.8.0-openjdk-headless.i686                                                                                       1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-1.8.0-openjdk-javadoc.noarch                                                                                      1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-1.8.0-openjdk-javadoc-zip.noarch                                                                                  1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-1.8.0-openjdk-src.i686                                                                                            1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-1.8.0-openjdk-src.x86_64                                                                                          1:1.8.0.402.b06-1.el7_9                                                                                    updates 
java-11-openjdk.i686                                                                                                   1:11.0.22.0.7-1.el7_9                                                                                      updates 
java-11-openjdk.x86_64                                                                                                 1:11.0.22.0.7-1.el7_9                                                                                      updates 
java-11-openjdk-demo.i686                                                                                              1:11.0.22.0.7-1.el7_9                                                                                      updates 
java-11-openjdk-demo.x86_64                                                                                            1:11.0.22.0.7-1.el7_9                                                                                      updates 
java-11-openjdk-devel.i686                                                                                             1:11.0.22.0.7-1.el7_9                                                                                      updates 
java-11-openjdk-devel.x86_64                                                                                           1:11.0.22.0.7-1.el7_9                                                                                      updates 
java-11-openjdk-headless.i686                                                                                          1:11.0.22.0.7-1.el7_9                                                                                      updates 
java-11-openjdk-headless.x86_64                                                                                        1:11.0.22.0.7-1.el7_9                                                                                      updates 
java-11-openjdk-javadoc.i686      

这么多包该选哪个不确定,唯一确定的是我目前需要1.8版本的jdk,来问一下gpt4这些版本有啥区别(本处使用的AI对话网站为谷流仓AI):

这些都是OpenJDK 8的不同包,每个包都有自己特定的用途:

- `java-1.8.0-openjdk.i686`和`java-1.8.0-openjdk.x86_64`: 这是标准的OpenJDK 8的JRE包,包含了运行Java程序所需的环境。其中,i686是32位版本,x86_64是64位版本。

- `java-1.8.0-openjdk-accessibility.i686`和`java-1.8.0-openjdk-accessibility.x86_64`: 这是与Java访问性功能相关的包。这些包为视觉或听觉障碍的用户提供了一些额外的工具和库。

- `java-1.8.0-openjdk-demo.i686`和`java-1.8.0-openjdk-demo.x86_64`: 这些是附带了一些示例程序的OpenJDK包。

- `java-1.8.0-openjdk-devel.i686`和`java-1.8.0-openjdk-devel.x86_64`: 这是OpenJDK的开发包,包含了Java开发所需的工具,例如Java编译器(javac)和其他工具(如javadoc、jdb等)。如果你需要开发Java程序,你需要安装这个包。

- `java-1.8.0-openjdk-headless.i686`和`java-1.8.0-openjdk-headless.x86_64`: 这是不包含图形界面的JRE版本。对于服务器环境或者不需要图形界面的应用,可以选择安装这个版本。

- `java-1.8.0-openjdk-javadoc.noarch`和`java-1.8.0-openjdk-javadoc-zip.noarch`: 这是OpenJDK的文档包,如果你需要Java API的文档,你可以安装这个包。

- `java-1.8.0-openjdk-src.i686`和`java-1.8.0-openjdk-src.x86_64`: 这是OpenJDK的源代码包,如果你需要查看或者修改OpenJDK的源代码,你可以安装这个包。

根据你的需要,你可能需要安装一个或者多个包。例如,如果你需要在64位系统上开发Java程序,你可能需要安装`java-1.8.0-openjdk.x86_64`和`java-1.8.0-openjdk-devel.x86_64`。如果你需要运行Java程序,但不需要开发,那么只安装`java-1.8.0-openjdk.x86_64`就足够了。

看到如上回答,基本可以确定要选择java-1.8.0-openjdk-devel.x86_64了,因为我需要java编译器,那么就执行:

yum install java-1.8.0-openjdk-devel.x86_64

然后验证一下:

java -version
# 输出结果:
# openjdk version "1.8.0_402"
# OpenJDK Runtime Environment (build 1.8.0_402-b06)
# OpenJDK 64-Bit Server VM (build 25.402-b06, mixed mode)
javac -verison
# 输出结果:javac 1.8.0_402

说明javajavac都安装好了。
下面再来尝试一下mvn clean install -Dmaven.test.skip=true,发现编译成功了,那么至此就完成了。

下载JDK安装包手动安装

忽略

JDK版本切换

如果安装了多个版本的jdk,比如jdk8和jdk11,可以使用如下命令进行切换:

# 切换java版本(输入对应的编号即可)
update-alternatives --config java
# 切换javac版本
update-alternatives --config javac

注意:通过yum install方式安装的jdk会自动出现在/etc/alternatives/中,所以可以直接通过update-alternatives来操作,如果是手动安装的jdk,就需要手动安装到/etc/alternatives/中以方便切换版本,具体步骤参照gpt4的如下回答(来自谷流仓AI):


在Linux中,你可以按照以下步骤将新下载的Java添加到alternatives系统:

  1. 首先,你需要将下载的Java安装包解压到一个目录,例如/usr/lib/jvm/。你可以使用如下命令:
sudo tar -xvf jdk-xx_linux-x64_bin.tar.gz -C /usr/lib/jvm

其中,jdk-xx_linux-x64_bin.tar.gz是你的Java安装包的文件名。

  1. 解压后,你可以使用update-alternatives命令将新的Java添加到alternatives系统:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdkxx/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdkxx/bin/javac 1

其中,/usr/lib/jvm/jdkxx/bin/java/usr/lib/jvm/jdkxx/bin/javac是你新安装的Java的javajavac命令的路径,jdkxx是你的Java版本号。

  1. 添加完成后,你可以使用update-alternatives --config java命令来切换Java版本。

以上就是centos切换jdk版本的过程。

关于/etc/alternatives:

# 查看/usr/bin中java的指向
ll /usr/bin | grep java
# 可以看到如下:java命令指向了/etc/alternatives/java,javac指向了/etc/alternatives/javac
# java -> /etc/alternatives/java
# javac -> /etc/alternatives/javac
# 然后看一下/etc/alternatives/java的指向
ll /etc/alternatives/java
# /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64/jre/bin/java
# 可以看出来/usr/bin/java最终指向了/usr/lib/jvm/的1.8版本的java

如果不想用/etc/alternatives的话,可以直接修改/usr/bin/java的指向,例如:

ln -sf /usr/local/java/jdk1.8.0_202/bin/java /usr/bin/java

这样就将/usr/bin/java的指向修改为了/usr/local/java/jdk1.8.0_202/bin/java,修改javac同理。

安装maven

参考这篇文章:How to Install Apache Maven on CentOS 7
关于这篇文章的安装jdk的坑,上面已经讲过了,就是要选择devel版本的包,不然不会安装javac

前置条件

需要有JDK环境,参考上面的安装JDK步骤。

安装过程

  1. 下载maven安装包
    可以去阿里云镜像站下载需要的版本:
wget https://mirrors.aliyun.com/apache/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz
  1. 解压
    这里解压到/opt文件夹
# 解压到/opt文件夹
tar xf apache-maven-3.9.6-bin.tar.gz  -C /opt
# 创建软链接,这样之后想要更新maven版本的话,直接修改软链接的指向就行了
ln -s /opt/apache-maven-3.9.6/ /opt/maven
  1. 设置环境变量
vim /etc/profile.d/maven.sh

把如下内容写进去:

export JAVA_HOME=/usr/lib/jvm/jre-openjdk
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}
# 赋予执行权限
chmod +x /etc/profile.d/maven.sh
# 使生效
source /etc/profile.d/maven.sh
  1. 验证
# 查看maven版本
mvn -version
# 结果如下所示即为正常
Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /opt/maven
Java version: 1.8.0_402, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"
  1. 设置maven镜像
    如果不设置镜像的话,从官方仓库下载依赖包会很慢,这里设置阿里云maven仓库镜像:
# 上面设置过M2_HOME变量了,所以直接用
vim $M2_HOME/conf/settings.xml

然后把如下配置插入<mirrors></mirrors>标签内:

<mirror>
     <id>alimaven</id>
     <mirrorOf>central</mirrorOf>
     <name>aliyun maven</name>
     <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

这样镜像仓库就设置好了

  • 14
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以按照以下步骤在CentOS 8上安装Maven 3.6.3: 1. 首先,打开终端并以root用户身份登录。 2. 安装Java Development Kit(JDK)。Maven需要JDK才能运行。在CentOS 8上,您可以使用以下命令安装OpenJDK 11: ``` dnf install java-11-openjdk-devel ``` 3. 验证Java安装是否成功。运行以下命令: ``` java -version ``` 您应该看到类似以下内容的输出,其中java版本应为11: ``` openjdk version "11.x.x" ... ``` 4. 下载Maven安装包。您可以通过访问Maven官方网站(https://maven.apache.org/download.cgi)来获取最新的Maven发行版。或者,您可以使用以下命令下载Maven 3.6.3版本: ``` wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz ``` 5. 解压Maven安装包。使用以下命令解压下载的文件: ``` tar xf apache-maven-3.6.3-bin.tar.gz ``` 6. 将Maven安装目录移动到适当的位置。使用以下命令将解压后的目录移动到`/opt`目录下: ``` mv apache-maven-3.6.3 /opt/ ``` 7. 配置环境变量。编辑`/etc/profile`文件,并添加以下行以配置Maven的环境变量: ``` export M2_HOME=/opt/apache-maven-3.6.3 export PATH=$PATH:$M2_HOME/bin ``` 8. 使环境变量生效。运行以下命令使环境变量立即生效: ``` source /etc/profile ``` 9. 验证Maven安装是否成功。运行以下命令: ``` mvn -version ``` 您应该看到类似以下内容的输出,其中maven版本应为3.6.3: ``` Apache Maven 3.6.3 ... ``` 现在,您已经成功在CentOS 8上安装Maven 3.6.3。您可以使用Maven来管理和构建Java项目了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值