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

news2025/4/5 21:47:56

在这里插入图片描述

一、在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,内容如下:
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.coloradmin.cn/o/2286274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【蓝桥杯省赛真题02】C++猫吃鱼 第十届蓝桥杯青少年创意编程大赛 算法思维 C++编程省赛真题解

目录 C猫吃鱼 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、运行结果 五、考点分析 七、推荐资料 C猫吃鱼 第十届蓝桥杯青少年创意编程大赛C选拔赛真题 一、题目要求 明明家从1号站点出发,开车去旅游,一共要经过n个…

SpringCloudGateWay和Sentinel结合做黑白名单来源控制

假设我们的分布式项目,admin是8087,gateway是8088,consumer是8086 我们一般的思路是我们的请求必须经过我们的网关8088然后网关转发到我们的分布式项目,那我要是没有处理我们绕过网关直接访问项目8087和8086不也是可以&#xff1…

CVE-2020-0796永恒之蓝2.0(漏洞复现)

目录 前言 产生原因 影响范围 漏洞复现 复现环境 复现步骤 防御措施 总结 前言 在网络安全的战场上,漏洞一直是攻防双方关注的焦点。CVE-2020-0796,这个被称为 “永恒之蓝 2.0” 的漏洞,一度引起了广泛的关注与担忧。它究竟是怎样的…

构建具身智能体的时空宇宙!GRUtopia:畅想城市规模下通用机器人的生活图景

作者: Hanqing Wang, Jiahe Chen, Wensi Huang, Qingwei Ben, Tai Wang, Boyu Mi, Tao Huang, Siheng Zhao, Yilun Chen, Sizhe Yang, Peizhou Cao, Wenye Yu, Zichao Ye, Jialun Li, Junfeng Long, Zirui Wang, Huiling Wang, Ying Zhao, Zhongying Tu, Yu Qiao, D…

1.五子棋对弈python解法——2024年省赛蓝桥杯真题

问题描述 原题传送门:1.五子棋对弈 - 蓝桥云课 "在五子棋的对弈中,友谊的小船说翻就翻?" 不!对小蓝和小桥来说,五子棋不仅是棋盘上的较量,更是心与心之间的沟通。这两位挚友秉承着"友谊第…

YOLOv8改进,YOLOv8检测头融合DynamicHead,并添加小目标检测层(四头检测),适合目标检测、分割等,全网独发

摘要 作者提出一种新的检测头,称为“动态头”,旨在将尺度感知、空间感知和任务感知统一在一起。如果我们将骨干网络的输出(即检测头的输入)视为一个三维张量,其维度为级别 空间 通道,这样的统一检测头可以看作是一个注意力学习问题,直观的解决方案是对该张量进行全自…

【16届蓝桥杯寒假刷题营】第2期DAY5

5.变变数组 - 蓝桥云课 给定一个长度为 n 的整数数组 A,A 中第 i 个元素为 Ai​(1≤i≤n),你只能在 A 中选择一个元素 a,将 A 中所有数值等于 a 的元素变为 a2,请问变化后 A 中所有元素和的最大为多少。 …

有限元分析学习——Anasys Workbanch第一阶段笔记梳理

第一阶段笔记主要源自于哔哩哔哩《ANSYS-workbench 有限元分析应用基础教程》 张晔 主要内容导图: 笔记导航如下: Anasys Workbanch第一阶段笔记(1)基本信息与结果解读_有限元分析变形比例-CSDN博客 Anasys Workbanch第一阶段笔记(2)网格单元与应力奇…

目标跟踪之sort算法(3)

这里写目录标题 1 流程1 预处理2 跟踪 2 代码 参考:sort代码 https://github.com/abewley/sort 1 流程 1 预处理 1.1 获取离线检测数据。1.2 实例化跟踪器。2 跟踪 2.1 轨迹处理。根据上一帧的轨迹预测当前帧的轨迹,剔除到当前轨迹中为空的轨迹得到当前…

uniapp 地图添加,删除,编辑标记,在地图中根据屏幕范围中呈现标记

前言 小程序实现新功能,在地图中选取位置添加标记,并在地图中呈现添加的标记,(呈现的是根据当前屏幕范围内的标记),并对标记进行分享,删除,编辑,导航,并从分…

SOME/IP服务接口

本系列文章将分享我在学习 SOME/IP 过程中积累的一些感悟,并结合 SOME/IP 的理论知识进行讲解。主要内容是对相关知识的梳理,并结合实际代码展示 SOME/IP 的使用,旨在自我复习并与大家交流。文中引用了一些例图,但由于未能找到原作…

NeetCode刷题第17天(2025.1.27)

文章目录 086 Course Schedule II 课程安排二087 Graph Valid Tree 图有效树088 Number of Connected Components in an Undirected Graph 无向图中的连接组件数量 086 Course Schedule II 课程安排二 您将获得一个数组 prerequisites ,其中 prerequisites[i] [a,…

c++学习第十四天

提示:以下是本篇文章正文内容,下面案例可供参考。 //力扣代码 class Solution {const char* numStrArr[10]{"","","abc","def","ghi","jkl","mno","pqrs","tuv&q…

遗传算法【Genetic Algorithm(GA)】求解函数最大值(MATLAB and Python实现)

一、遗传算法基础知识 来自B站视频的笔记: 【超容易理解】手把手逐句带你解读并实现遗传算法的MATLAB编程(结合理论基础)_哔哩哔哩_bilibili 1、遗传算法 使用“适者生存”的原则,在遗传算法的每一代中,…

【Rust自学】15.6. RefCell与内部可变性:“摆脱”安全性限制

题外话,这篇文章一共4050字,是截止到目前为止最长的文章,如果你能坚持读完并理解,那真的很强! 喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以…

Luzmo 专为SaaS公司设计的嵌入式数据分析平台

Luzmo 是一款嵌入式数据分析平台,专为 SaaS 公司设计,旨在通过直观的可视化和快速开发流程简化数据驱动决策。以下是关于 Luzmo 的详细介绍: 1. 背景与定位 Luzmo 前身为 Cumul.io ,专注于为 SaaS 公司提供嵌入式分析解决方案。…

HTML<label>标签

例子 三个带标签的单选按钮&#xff1a; <form action"/action_page.php"> <input type"radio" id"html" name"fav_language" value"HTML"> <label for"html">HTML</label><br&…

【技术洞察】2024科技绘卷:浪潮、突破、未来

涌动与突破 2024年&#xff0c;科技的浪潮汹涌澎湃&#xff0c;人工智能、量子计算、脑机接口等前沿技术如同璀璨星辰&#xff0c;方便了大家的日常生活&#xff0c;也照亮了人类未来的道路。这一年&#xff0c;科技的突破与创新不断刷新着人们对未来的想象。那么回顾2024年的科…

【Linux】gdb——Linux调试器

gdb使用背景 程序的发布方式有两种&#xff0c;debug模式和release模式 Linux gcc/g出来的二进制程序&#xff0c;默认是release模式 要使用gdb调试&#xff0c;必须在源代码生成二进制程序的时候, 加上 -g 选项 gdb使用方法 首先进入gdb gdb test_glist显示代码 断点 b 行…

fpga系列 HDL:XILINX Vivado Vitis 高层次综合(HLS) 实现 EBAZ板LED控制(上)

目录 创建工程创建源文件并编写C代码C仿真综合仿真导出RTL CG导出RTL错误处理&#xff1a; 创建工程 创建源文件并编写C代码 创建源文件(Souces下的hlsv.h和hlsv.cpp&#xff0c;Test Bench下的test_hlsv1.cpp)&#xff1a; hlsv1.h #ifndef HLSV1 #define HLSV1 #include &l…