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

在这里插入图片描述

一、在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.rhkb.cn/news/9368.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter_学习记录_基本组件的使用记录

1.TextWidge的常用属性 1.1TextAlign: 文本对齐属性 常用的样式有: TextAlign.center 居中TextAlign.left 左对齐TextAlign.right 有对齐 使用案例: body: Center(child: Text(开启 TextWidget 的旅程吧,珠珠, 开启 TextWidget 的旅程吧&a…

Java面试题2025-并发编程进阶(线程池和并发容器类)

线程池 一、什么是线程池 为什么要使用线程池 在开发中,为了提升效率的操作,我们需要将一些业务采用多线程的方式去执行。 比如有一个比较大的任务,可以将任务分成几块,分别交给几个线程去执行,最终做一个汇总就可…

算法基础学习——二分查找(附带Java模板)

有单调性的数列一定可以使用二分,没有单调性的题目也可能可以使用二分; (一)整数二分 二分的本质: 在某个整数区间内,存在某种性质使得区间内左半边的数都不满足该性质;而右半边的数都满足该性…

【Redis】List 类型的介绍和常用命令

1. 介绍 Redis 中的 list 相当于顺序表,并且内部更接近于“双端队列”,所以也支持头插和尾插的操作,可以当做队列或者栈来使用,同时也存在下标的概念,不过和 Java 中的下标不同,Redis 支持负数下标&#x…

如何看待 OpenAI 的12天“shipmas”发布计划?

openAI的“Shipmas”并非单纯的营销活动,而是在用户增长、技术创新和市场竞争中的综合布局和战略体现。 史上最寒酸的发布会?继十月马斯克在好莱坞电影城高调发布特斯拉三款最新产品(无人出租车、无人巴士、人形机器人)后,十二月,OpenAI CEO 奥特曼宣布 OpenAI 将连续12…

1.26学习

misc buuctf-神秘龙卷风 下载附件后打开,果然是一个加密的压缩包,用工具对这个压缩包进行破解,根据题目的四位数字我们可以知道密码是四位数字,所以破解得到密码解压后看到的是一串密文,是Brainfuck密文,…

把本地搭建的hexo博客部署到自己的服务器上

配置远程服务器的git 安装git 安装依赖工具包 yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel安装编译工具 yum install -y gcc perl-ExtUtils-MakeMaker package下载git,也可以去官网下载了传到服务器上 wget https://www.ke…

Ollama 运行从 ModelScope 下载的 GGUF 格式的模型

本文系统环境 Windows 10 Ollama 0.5.7 Ollama 是什么? Ollama 可以让你快速集成和部署本地 AI 模型。它支持各种不同的 AI 模型,并允许用户通过简单的 API 进行调用 Ollama 的安装 Ollama 官网 有其下载及安装方法,非常简便 但如果希…

【LLM】deepseek多模态之Janus-Pro和JanusFlow框架

note 文章目录 note一、Janus-Pro:解耦视觉编码,实现多模态高效统一技术亮点模型细节 二、JanusFlow:融合生成流与语言模型,重新定义多模态技术亮点模型细节 Reference 一、Janus-Pro:解耦视觉编码,实现多模…

【C++】特殊类设计、单例模式与类型转换

目录 一、设计一个类不能被拷贝 (一)C98 (二)C11 二、设计一个类只能在堆上创建对象 (一)将构造函数私有化,对外提供接口 (二)将析构函数私有化 三、设计一个类只…

【漫话机器学习系列】064.梯度下降小口诀(Gradient Descent rule of thume)

梯度下降小口诀 为了帮助记忆梯度下降的核心原理和关键注意事项,可以用以下简单口诀来总结: 1. 基本原理 损失递减,梯度为引:目标是让损失函数减少,依靠梯度指引方向。负梯度,反向最短:沿着负…

Autogen_core 测试代码:test_cache_store.py

目录 原始代码测试代码代码中用到的typing注解 原始代码 from typing import Dict, Generic, Optional, Protocol, TypeVarT TypeVar("T")class CacheStore(Protocol, Generic[T]):"""This protocol defines the basic interface for store/cache o…

文件上传2

BUUCTF 你传你🐎呢 先上传.htaccess 修改格式 即可上传成功 返回上传图片格式的木马 用蚁剑连接 5ecf1cca-59a1-408b-b616-090edf124db5.node5.buuoj.cn:81/upload/7d8511a847edeacb5385299396a96d91/rao.jpg 即可得到flag [GXYCTF2019]BabyUpload

挂载mount

文章目录 1.挂载的概念(1)挂载命令:mount -t nfs(2)-t 选项:指定要挂载的文件系统类型(3)-o选项 2.挂载的目的和作用(1)跨操作系统访问:将Windows系统内容挂载到Linux系统下(2)访问外部存储设备(3)整合不同的存储设备 3.文件系统挂载要做的事…

UE求职Demo开发日志#15 思路与任务梳理、找需要的资源

1 思路梳理 因为有点无从下手,就梳理下最终形态. 基地的建设我是想单独一个场景,同一个关卡中小怪会每次来都会刷,小解密一次性的,关键的Boss和精英怪不会重复刷,同时场景里放一些资源可收集,基地建设锁定区…

vulfocus/thinkphp:6.0.12 命令执行

本次测试是在vulfocus靶场上进行 漏洞介绍 在其6.0.13版本及以前,存在一处本地文件包含漏洞。当多语言特性被开启时,攻击者可以使用lang参数来包含任意PHP文件。 虽然只能包含本地PHP文件,但在开启了register_argc_argv且安装了pcel/pear的环境下,可以包含/usr/local/lib/…

洛谷P3884 [JLOI2009] 二叉树问题(详解)c++

题目链接:P3884 [JLOI2009] 二叉树问题 - 洛谷 | 计算机科学教育新生态 1.题目解析 1:从8走向6的最短路径,向根节点就是向上走,从8到1会经过三条边,向叶节点就是向下走,从1走到6需要经过两条边&#xff0c…

如何获取小程序的code在uniapp开发中

如何获取小程序的code在uniapp开发中,也就是本地环境,微信开发者工具中获取code,这里的操作是页面一进入就获取code登录,没有登录页面的交互,所以写在了APP.vue中,也就是小程序一打开就获取用户的code APP.…

k8s支持自定义field-selector spec.hostNetwork过滤

好久没写博客啦,年前写一个博客就算混过去啦😂 写一个小功能,对于 Pod,在没有 label 的情况下,支持 --field-selector spec.hostNetwork 查询 Pod 是否为 hostNetwork 类型,只为了熟悉 APIServer 是如何构…

olloama下载deepseek-r1大模型本地部署

1.登录olloama,选择models,选择deepseek-r1模型,选择1.5b(核显电脑) 2.选择1.5b,复制命令,打开CMD控制台; 3.控制台输入ollama run deepseek-r1:1.5b自动下载 4.部署完成 5.退出【Ctrl d】or 【/bye】 …