OpenEuler学习笔记(十五):在OpenEuler上搭建Java运行环境

server/2025/2/2 23:09:24/

在这里插入图片描述

一、在OpenEuler上搭建Java运行环境

在OpenEuler上搭建Java运行环境可以通过以下几种常见方式,下面分别介绍基于包管理器安装OpenJDK和手动安装Oracle JDK的步骤。

使用包管理器安装OpenJDK

OpenJDK是Java开发工具包的开源实现,在OpenEuler上可以方便地使用包管理器进行安装。

  1. 更新系统软件包
    在安装Java之前,建议先更新系统的软件包列表,确保获取到最新的软件包信息。
sudo dnf update -y
  1. 搜索可用的Java版本
    使用以下命令搜索系统中可用的OpenJDK版本:
sudo dnf search java-*-openjdk

该命令会列出所有可用的OpenJDK版本,你可以根据自己的需求选择合适的版本,例如Java 11或Java 17。
3. 安装选定的Java版本
假设你要安装Java 17,执行以下命令:

sudo dnf install java-17-openjdk-devel -y

java-17-openjdk-devel 包含了开发和运行Java程序所需的所有组件。如果你只需要运行Java程序,也可以安装 java-17-openjdk
4. 验证Java安装
安装完成后,使用以下命令验证Java是否安装成功:

java -version
javac -version

如果输出显示了Java的版本信息,则说明Java安装成功。

手动安装Oracle JDK

如果你需要使用Oracle JDK,可以按照以下步骤进行手动安装:

  1. 下载Oracle JDK
    访问Oracle官方网站(https://www.oracle.com/java/technologies/javase-downloads.html ),根据你的系统架构(如x64)下载合适的JDK压缩包(通常是 .tar.gz 格式)。
  2. 创建安装目录
    在系统中创建一个用于安装JDK的目录,例如:
sudo mkdir /usr/local/java
  1. 解压JDK压缩包
    将下载的JDK压缩包解压到刚刚创建的目录中:
sudo tar -zxvf jdk-17.0.4_linux-x64_bin.tar.gz -C /usr/local/java

请将 jdk-17.0.4_linux-x64_bin.tar.gz 替换为你实际下载的文件名。
4. 配置环境变量
编辑 /etc/profile 文件,添加以下内容来配置Java的环境变量:

sudo vim /etc/profile

在文件末尾添加以下内容:

export JAVA_HOME=/usr/local/java/jdk-17.0.4
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

请将 /usr/local/java/jdk-17.0.4 替换为你实际解压后的JDK目录。
保存并退出文件后,执行以下命令使环境变量生效:

source /etc/profile
  1. 验证Java安装
    使用以下命令验证Java是否安装成功:
java -version
javac -version

如果输出显示了Java的版本信息,则说明Java安装成功。

多Java版本管理

如果你需要在系统中同时管理多个Java版本,可以使用 alternatives 工具进行切换。例如,如果你安装了Java 8和Java 17,可以使用以下命令切换默认的Java版本:

sudo alternatives --config java

根据提示选择你想要使用的Java版本即可。

二、在OpenEuler上配置Java运行环境的环境变量

在OpenEuler上配置Java运行环境的环境变量主要是设置JAVA_HOMEPATHCLASSPATH,下面为你详细介绍配置方法:

1. 确定Java安装路径

首先要明确Java的安装路径。如果你是通过包管理器(如dnf)安装的OpenJDK,通常安装在/usr/lib/jvm目录下;若手动安装Oracle JDK,安装路径则是你解压JDK压缩包的目录。

你可以使用以下命令查看已安装的Java路径:

alternatives --display java

或者通过查找文件的方式:

find / -name "java" 2>/dev/null

2. 配置环境变量

环境变量的配置方式有两种,分别是针对当前用户和针对所有用户,以下为你详细介绍:

针对当前用户配置

如果你只想为当前登录的用户配置Java环境变量,可以编辑当前用户的.bashrc.bash_profile文件。以.bashrc为例:

vim ~/.bashrc

在文件末尾添加以下内容,假设Java安装路径为/usr/lib/jvm/java-17-openjdk

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • JAVA_HOME:指向Java的安装目录,方便其他程序引用。
  • PATH:将Java的可执行文件目录添加到系统的搜索路径中,这样就可以在任意位置直接使用javajavac等命令。
  • CLASSPATH:指定Java类文件的搜索路径,.表示当前目录,dt.jartools.jar是Java的核心类库。

保存并退出文件后,执行以下命令使配置生效:

source ~/.bashrc
针对所有用户配置

若要为系统中的所有用户配置Java环境变量,可以编辑/etc/profile文件:

sudo vim /etc/profile

在文件末尾添加上述相同的环境变量配置内容:

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

保存并退出文件后,执行以下命令使配置生效:

source /etc/profile

3. 验证配置

配置完成后,使用以下命令验证Java环境变量是否配置成功:

echo $JAVA_HOME
java -version
javac -version

如果echo $JAVA_HOME能正确输出Java的安装路径,并且java -versionjavac -version能正常显示Java的版本信息,则说明Java环境变量配置成功。

在这里插入图片描述

三、如何验证Java环境变量是否配置成功?

验证Java环境变量是否配置成功可以通过以下几种常见方法:

检查环境变量输出

  • 检查JAVA_HOME:在终端中输入echo $JAVA_HOME,如果正确输出了你配置的Java安装路径,说明JAVA_HOME环境变量配置正确。例如,正确配置时可能输出/usr/lib/jvm/java-17-openjdk
  • 检查PATH:输入echo $PATH,查看输出中是否包含$JAVA_HOME/bin的路径,这确保了系统能在正确的路径下找到Java可执行文件。

命令行工具验证

  • java -version命令:在终端中输入java -version,如果成功显示Java的版本信息,如java version "17.0.8" 2023-07-18 LTS等内容,说明Java运行环境和相关环境变量配置基本正确,系统能够找到并执行Java命令。
  • javac -version命令:输入javac -version,若能显示Java编译器的版本信息,表明Java开发环境的环境变量配置无误,javac命令可以正常使用,通常用于验证Java开发相关的环境变量是否配置正确。

编写并运行Java程序

  • 创建测试文件:使用文本编辑器创建一个简单的Java程序,例如命名为HelloWorld.java,内容如下:
java">public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}
}
  • 编译运行:在终端中,进入到保存HelloWorld.java文件的目录,执行javac HelloWorld.java命令进行编译。如果没有报错,说明javac命令能正常工作,环境变量配置正确。接着执行java HelloWorld,如果能在终端中输出Hello, World!,则证明Java运行环境的环境变量配置成功,Java程序可以正常编译和运行。

如果上述任何一种方法出现问题或无法得到预期结果,可能需要检查环境变量的配置是否正确,以及Java安装是否完整和正确。


http://www.ppmy.cn/server/164455.html

相关文章

《大数据时代“快刀”:Flink实时数据处理框架优势全解析》

在数字化浪潮中,数据呈爆发式增长,实时数据处理的重要性愈发凸显。从金融交易的实时风险监控,到电商平台的用户行为分析,各行业都急需能快速处理海量数据的工具。Flink作为一款开源的分布式流处理框架,在这一领域崭露头…

Vue 封装http 请求

封装message 提示 Message.js import { ElMessage } from "element-plus";const showMessage (msg,callback,type)>{ElMessage({message: msg,type: type,duration: 3000,onClose:()>{if (callback) {callback();}}}); }const message {error: (msg,…

c++面试:类定义为什么可以放到头文件中

这个问题是刚了解预编译的时候产生的疑惑。 声明是指向编译器告知某个变量、函数或类的存在及其类型,但并不分配实际的存储空间。声明的主要目的是让编译器知道如何解析程序中的符号引用。定义不仅告诉编译器实体的存在,还会为该实体分配存储空间&#…

XML DOM - 导航节点

可通过使用节点间的关系对节点进行导航。 导航 DOM 节点 通过节点间的关系访问节点树中的节点,通常称为导航节点("navigating nodes")。 在 XML DOM 中,节点的关系被定义为节点的属性: parentNodechildNo…

Unity实现按键设置功能代码

一、前言 最近在学习unity2D,想做一个横版过关游戏,需要按键设置功能,让用户可以自定义方向键与攻击键等。 自己写了一个,总结如下。 二、界面效果图 这个是一个csv文件,准备第一列是中文按键说明,第二列…

Protocol Buffers c# with c++ communcation demo

以下内容完全由AI 生成 以下是一个 Protocol Buffers 在 C# 和 C 之间进行通信的示例,包含定义 .proto 文件、分别在 C# 和 C 中生成代码、实现简单的发送和接收逻辑 1. 定义 .proto 文件 创建一个名为 message.proto 的文件,定义一个简单的消息类型&…

(笔记+作业)书生大模型实战营春节卷王班---L1G3000 浦语提示词工程实践

学员闯关手册:https://aicarrier.feishu.cn/wiki/QtJnweAW1iFl8LkoMKGcsUS9nld 课程视频:https://www.bilibili.com/video/BV13U1VYmEUr/ 课程文档:https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/Python 关卡作业:htt…

MySQL 9.2.0 的功能

MySQL 9.2.0 的功能 MySQL 9.2.0 的功能新增、弃用和删除内容如下: 新增功能 权限新增12:引入了CREATE_SPATIAL_REFERENCE_SYSTEM权限,拥有该权限的用户可执行CREATE SPATIAL REFERENCE SYSTEM、CREATE OR REPLACE SPATIAL REFERENCE SYSTEM…