当前位置: 首页 > article >正文

0x-2-Oracle Linux 9上安装JDK配置环境变量

一、JDK选择和使用

安装完Oracle Linux9.6,同时使用rpm包安装Oracle 23 ai free后,

将面临sqlcl程序无法使用和java无法使用,需要相应进行变量配置问题。

1、java 环境运行不存在,Oracle 23ai free安装后默认安装JDK 11

/opt/oracle/product/23ai/dbhomeFree/jdk/bin/java

[oracle@OL96TC bin]$ java -version
bash: java: command not found...
Packages providing this file are:
'java-11-openjdk-headless'
'java-17-openjdk-headless'
[oracle@OL96TC bin]$ exit
logout
[root@OL96TC ~]# java -version
bash: java: command not found...
Packages providing this file are:
'java-11-openjdk-headless'
'java-17-openjdk-headless'
[root@OL96TC ~]# java --version
bash: java: command not found...
Packages providing this file are:
'java-11-openjdk-headless'
'java-17-openjdk-headless'
[root@OL96TC ~]# which java
/usr/bin/which: no java in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
[root@OL96TC ~]# find / -name java
find: ‘/proc/82056’: No such file or directory
/etc/pki/ca-trust/extracted/java
/etc/pki/java
/usr/share/bash-completion/completions/java
/opt/oracle/product/23ai/dbhomeFree/jdk/bin/java
/opt/oracle/product/23ai/dbhomeFree/xdk/doc/java
[root@OL96TC ~]# cd /opt/oracle/product/23ai/dbhomeFree/jdk/bin/java
-bash: cd: /opt/oracle/product/23ai/dbhomeFree/jdk/bin/java: Not a directory
[root@OL96TC ~]# ./opt/oracle/product/23ai/dbhomeFree/jdk/bin/java -version
-bash: ./opt/oracle/product/23ai/dbhomeFree/jdk/bin/java: No such file or directory
[root@OL96TC ~]# cd /opt/oracle/product/23ai/dbhomeFree/jdk/bin/

2、随着Oracle 23 ai free默认安装的sqlcl不生效,无法使用 

[oracle@OL96TC bin]$ pwd
/opt/oracle/product/23ai/dbhomeFree/sqlcl/bin
[oracle@OL96TC bin]$ cd ..
[oracle@OL96TC sqlcl]$ ll
total 8
drwxr-xr-x. 2 oracle oinstall   17 Jun  3 19:57 bin
drwxr-x---. 3 oracle oinstall 4096 Jun  3 19:57 lib
[oracle@OL96TC sqlcl]$ cd bin
[oracle@OL96TC bin]$ ll
total 32
-rwxr-xr-x. 1 oracle oinstall 29653 Jan  1  2023 sql
[oracle@OL96TC bin]$ ./sql /nologError: SQLcl requires Java 11 and above to run.Found Java version no_java.Please set JAVA_HOME to appropriate version.

3、Oracle Linux 9安装后默认的位置和变量设置 

[oracle@OL96TC ~]$ export PATH=$PATH:/opt/oracle/product/23ai/dbhomeFree/jdk/bin
[oracle@OL96TC ~]$ java -version
java version "11.0.27" 2025-04-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.27+8-LTS-232)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.27+8-LTS-232, mixed mode)
4、修改oracle用户在的.bash_profile

--如果是手工安装的java-11或是java-17的OPENJDK设置下一行, 

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk

export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree
export ORACLE_SID=FREE
export PATH=$ORACLE_HOME/bin:$PATH
export PATH=$PATH:/opt/oracle/product/23ai/dbhomeFree/sqlcl/bin
--如果是手工安装的java-11或是java-17的OPENJDK设置下一行,
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$PATH:$JAVA_HOME/bin
4.1 不单独使用dnf安装JAVA,直接使用Oracle 23 ai free安装后的JDK 

export PATH=$PATH:/opt/oracle/product/23ai/dbhomeFree/jdk/bin

 [oracle@OL96TC ~]$ cat ~/.bash_profile
# .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programs
export ORACLE_HOME=/opt/oracle/product/23ai/dbhomeFree
export ORACLE_SID=FREE
export PATH=$ORACLE_HOME/bin:$PATH
export PATH=$PATH:/opt/oracle/product/23ai/dbhomeFree/sqlcl/bin
export PATH=$PATH:/opt/oracle/product/23ai/dbhomeFree/jdk/bin
export PATH=$PATH:$JAVA_HOME/bin

二、Linux 上JAVA安装和变量设定

在Linux 无论是Redhat、Oracle Linux、Almalinux系列安装JAVA,均可行的办法。

验证是在Oracle Linux 9上安装JDK并配置环境变量的步骤如下:

1. 更新系统

sudo dnf update -y

2. 清理旧版本环境
在安装新JDK前清理旧版本环境非常重要,需要完整安全地清理:
  • 列出已安装的JDK相关包
dnf list installed | grep -E 'java|jdk|openjdk'
--rpm查阅
rpm -qa | grep -E 'java|jdk|openjdk'
  • 卸载所有JDK相关包-生产环境谨慎
# 批量卸载(务必谨慎操作,会删除所有Java相关包)
sudo dnf remove $(rpm -qa | grep -E 'java|jdk|openjdk') -y# 或单独卸载指定包比如删除1.8.0
sudo dnf remove java-1.8.0-openjdk java-11-openjdk java-17-openjdk -y
  • 清理残留文件
# 检查可能残留的目录
ls -l /usr/lib/jvm/
ls -l /usr/java/# 手动删除残留目录
sudo rm -rf /usr/lib/jvm/java-*
sudo rm -rf /usr/java/*
  • 清除alternatives配置
在 Linux 系统中,​alternatives​ 是一个用于管理系统中多个功能相似的软件版本的命令行工具,特别适用于管理 Java 环境等需要版本切换的场景。

 

# 列出Java相关alternatives配置
sudo alternatives --list | grep java# 逐个删除(以java命令为例)--未使用
sudo alternatives --remove java /path/to/old/jre/bin/java
  • 检查环境变量残留
# 查看环境变量配置
cat /etc/profile.d/*.sh | grep JAVA_HOME
cat ~/.bashrc | grep JAVA_HOME# 手动注释或删除旧配置
sudo nano /etc/profile.d/java.sh  
# 上一行需要对应删除或注释相关行
nano ~/.bashrc                    
# 上一行需要对应删除或注释相关行
  • 应用清理
source /etc/profile
source ~/.bashrc
  • 验证系统是否还存在Java
which java     
# 应返回无结果
java -version  
# 应提示"command not found"
清理完成后,可继续执行JDK安装流程
注意事项
  • 1.生产环境谨慎操作,确保卸载不会影响现有服务
  • 2.某些应用可能自带JRE,需单独处理

3. dnf搜索可用的JDK版本 

dnf search jdk
# 或搜索OpenJDK  有些版权问题,一般都用这个OPENJDK
dnf search openjdk

4. 安装JDK,选择11还是17,推荐lts版本 

sudo dnf install java-11-openjdk-devel -y
#选择11还是选择17,甚至目前有21 
sudo dnf install java-17-openjdk-devel -y

5. 验证安装 

java -version
javac -version
6. 查找JDK安装路径
find / -name 'java' -type f
type javawhich java
ls /usr/lib/jvm/
# 通常路径类似11,17,21等:/usr/lib/jvm/java-17-openjdk-<版本号>
7. 配置全局环境变量

创建配置文件:

sudo vi /etc/profile.d/java.sh

输入以下内容(替换为上面查询到的JDK路径): 

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$PATH:$JAVA_HOME/bin

保存后执行:

source /etc/profile.d/java.sh

8. 验证环境变量 

echo $JAVA_HOME
echo $PATH
java -version

JDK已安装并配置完成,可正常使用Java环境,

如需其他版本(如JDK 21/17/11/8),将上述步骤中的17替换为对应版本号即可。

 

 

相关文章:

0x-2-Oracle Linux 9上安装JDK配置环境变量

一、JDK选择和使用 安装完Oracle Linux9.6&#xff0c;同时使用rpm包安装Oracle 23 ai free后&#xff0c; 将面临sqlcl程序无法使用和java无法使用&#xff0c;需要相应进行变量配置问题。 1、java 环境运行不存在&#xff0c;Oracle 23ai free安装后默认安装JDK 11 /opt/…...

深入理解卷积神经网络:从原理到应用

在人工智能领域&#xff0c;卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;无疑是计算机视觉领域的璀璨明珠。从 1998 年 Yann LeCun 提出 LeNet-5 实现手写数字识别&#xff0c;到 2012 年 AlexNet 在 ImageNet 大赛上创造历史性突破&#xff0c;CNN…...

从入门到实战:AI学习路线全解析——避坑指南

分享一下阿里的人工智能学习路线,为感兴趣系统学习的小伙伴们探路。 一、谁适合学这门AI课程?五类人群的精准定位 无论你是零基础小白还是职场转型者,这套系统化课程都能为你量身定制成长路径: 零基础爱好者(无编程/数学背景) 课程提供Python和数学前置学习建议,先补基…...

Spring Boot + Thymeleaf 防重复提交

在 Spring Boot 与 Thymeleaf 结合的 Web 应用中&#xff0c;防止重复提交可以采用token 机制 客户端禁用按钮的方式实现&#xff0c;在高并发场景下&#xff0c;考虑使用 Redis 存储 token 而非 Session。 第一步&#xff1a;后端实现 Controller public class FormControl…...

uniapp实现的简约美观的星级评分组件

采用 uniapp 实现的一款简约美观的星级评分模板&#xff0c;提供丝滑动画效果&#xff0c;用户可根据自身需求进行自定义修改、扩展&#xff0c;纯CSS、HTML实现&#xff0c;支持web、H5、微信小程序&#xff08;其他小程序请自行测试&#xff09; 可到插件市场下载尝试&#x…...

AWS Elastic Beanstalk + CodePipeline(Python Flask Web的国区CI/CD)

目标 需要使用AWS Elastic Beanstalk 部署一个Python的Flask Web应用&#xff0c;并且使用CodePipeline作为CI/CD工作流。 eb部署图 前提 假设你已经有一个能够正常运行的Python的Flask Web应用项目代码&#xff0c;而且需要对已有Flask工程做一些调整。由于AWS Elastic Bea…...

多线程语音识别工具

软件介绍 本文介绍一款支持大厂接口的语音转文字工具&#xff0c;具备免配置、免费使用的特点。 软件特性 该工具是一款完全免费的桌面端应用程序&#xff0c;部署于开源社区平台&#xff0c;其核心优势在于整合了多家技术供应商的接口资源。 操作方式 用户只需将音频…...

前端对WebSocket进行封装,并建立心跳监测

WebSocket的介绍&#xff1a; WebSocket 是一种在客户端和服务器之间进行全双工、双向通信的协议。它是基于 HTTP 协议&#xff0c;但通过升级&#xff08;HTTP 升级请求&#xff09;将连接转换为 WebSocket 协议&#xff0c;从而提供更高效的实时数据交换。 WebSocket 的特点…...

DiMTAIC 2024 数字医学技术及应用创新大赛-甲状腺B超静态及动态影像算法赛-参赛项目

参赛成绩 项目介绍 去年参加完这个比赛之后&#xff0c;整理了项目文件和代码&#xff0c;虽然比赛没有获奖&#xff0c;但是参赛过程中自己也很有收获&#xff0c;自己一个人搭建了完整的pipeline并基于此提交了多次提高成绩&#xff0c;现在把这个项目梳理成博客&#xff0c…...

window安装docker\docker-compose

安装前配置 打开控制面板,参照下图打开“启动或关闭windows功能”,Hyper-V 和容器需要启用 程序和功能 启动或关闭windows功能 勾选Hyper-V 安装路径配置 Docker在Windows上的默认安装路径为C:\Program Files\Docker。 以管理员身份运行CMD在D盘,dev文件夹下创建Docker文…...

Jenkins的学习与使用(CI/CD)

文章目录 前言背景CI/CDJenkins简介Jenkins特性 安装Jenkins工作流程&#xff08;仅供参考&#xff09;安装maven和其他插件新建任务任务源码管理配置maven配置git&#xff08;非必需&#xff09; 尝试手动构建jar包可能遇到的错误 发布到远程服务器前置清理工作构建触发器git钩…...

vue-14(使用 ‘router.push‘ 和 ‘router.replace‘ 进行编程导航)

使用 ‘router.push’ 和 ‘router.replace’ 进行编程导航 编程导航是使用 Vue Router 构建动态和交互式 Web 应用程序的一个重要方面。它允许您根据应用程序逻辑、用户作或特定条件控制用户的导航流。您可以使用 router.push 和 router.replace 方法以编程方式导航到不同的路…...

使用WPF的Microsoft.Xaml.Behaviors.Wpf中通用 UI 元素事件

Nuget下载之后记得要先引用下面的 xmlns:i"http://schemas.microsoft.com/xaml/behaviors" <!-- 鼠标事件 --> <i:EventTrigger EventName"MouseEnter"/> <!-- 鼠标进入 --> <i:EventTrigger EventName"MouseLeave"/&g…...

Elasticsearch中的监控(Monitoring)功能介绍

Elasticsearch 的 监控&#xff08;Monitoring&#xff09; 功能用于实时跟踪集群的运行状态、性能指标和资源使用情况&#xff0c;帮助管理员及时发现潜在问题、优化配置并确保集群稳定高效运行。它通过内置工具和集成方案&#xff0c;提供从节点到集群、从硬件到服务层的全方…...

Centos7.6图文安装mysql8.4详细步骤记录

1 前提条件 1.1 关闭数据库服务器的防火墙 # 关闭数据库服务器的防火墙 systemctl stop firewalld systemctl disable firewalld 1.2 关闭SELinux # 编辑 /etc/selinux/configvi /etc/selinux/config#内容更改为disabledSELINUXdisabled 1.3 卸载系统自身带的mysql&#…...

AI短视频创富营

课程内容&#xff1a; 相关资料 【第一章】前期准备 001.【涨粉技巧】新账号如何快速涨粉?_ev(1).mp4 002.【带贷权限】如何开通账号带贷权限?(1).mp4 003.【费用缴纳】如何缴纳账号保证金?_ev(1).mp4 004.【账号检测】如何检测账号是否限流?(1).mp4 005.【风险规避…...

C++.OpenGL (4/64)纹理(Texture)

纹理(Texture) 纹理映射核心流程 #mermaid-svg-XxVbt4fizulzb5H3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-XxVbt4fizulzb5H3 .error-icon{fill:#552222;}#mermaid-svg-XxVbt4fizulzb5H3 .error-text{fill:…...

spring中的@RabbitListener注解详解

基本用法主要属性1. queues / queueNames2. containerFactory3. id4. concurrency5. ackMode6. priority7. bindings 高级特性1. 消息转换器2. 手动确认3. 条件监听4. 错误处理 配置监听容器工厂注意事项完整示例循环依赖解决1. 使用 Setter 注入2. 使用 Lazy 注解3. 重构代码结…...

MySQL-运维篇

运维篇 日志 错误日志 错误日志是 MySQL 中最重要的日志之一&#xff0c;它记录了当 mysqld 启动和停止时&#xff0c;以及服务器在运行过程中发生任何严重错误时的相关信息当数据库出现任何故障导致无法正常使用时&#xff0c;建议首先查看此日志。 该日志是默认开启的&am…...

深度优先算法学习

1: 从 1点出发到 15点 #include <stdio.h>#define MAX_NODES 100typedef struct {int node_id;int *nextNodes;int nextNodesSize; } Node;// 假设我们有一个节点数组&#xff0c;全局保存了所有节点 Node nodes[MAX_NODES];void dfs(int node_id) {Node *node &n…...

青少年编程与数学 01-011 系统软件简介 08 Windows操作系统

青少年编程与数学 01-011 系统软件简介 08 Windows操作系统 1. Windows操作系统的起源与发展1.1 早期版本&#xff08;1985-1995&#xff09;1.2 Windows 9x系列&#xff08;1995-2000&#xff09;1.3 Windows NT系列&#xff08;1993-2001&#xff09;1.4 Windows XP及以后版…...

前端技能包

ES6 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><script>// 变量定义var a1;let b5; // 现在使用let 定义变量// 对象解构let person{&quo…...

Vue-github 用户搜索案例

一、前言 在 Vue 开发中&#xff0c;与后端或第三方 API 接口进行交互是非常常见的需求。GitHub 提供了开放的 RESTful API&#xff0c;非常适合用来练习 Vue 的异步请求和数据绑定功能。 本文将带你一步步实现一个完整的 GitHub 用户搜索系统&#xff0c;包括&#xff1a; …...

Mac版Visual Studio Code Copilot 无法使用的解决方法

1 app文件夹删除Visual Studio Code 2 终端里面 输入以下指令&#xff0c;删除各种缓存 rm -fr ~/Library/Preferences/com.microsoft.VSCode.helper.plist rm -fr ~/Library/Preferences/com.microsoft.VSCode.plist rm -fr ~/Library/Caches/com.microsoft.VSCode rm -f…...

【笔记】PyCharm 使用问题反馈与官方进展速览

#工作记录 https://youtrack.jetbrains.com/issue/IJPL-190308 【笔记】记一次PyCharm的问题反馈_the polyglot context is using an implementation th-CSDN博客 【笔记】与PyCharm官方沟通解决开发环境问题-CSDN博客 与 JetBrains 官方沟通记录&#xff08;PyCharm 相关问题…...

操作系统期末版

文章目录 概论处理机管理进程线程处理机调度生产者消费者问题 死锁简介死锁的四个必要条件解决死锁的方法 存储管理链接的三种方式静态链接装入时动态链接运行时链接 装入内存的三种方式绝对装入可重定位装入动态运行时装入 覆盖交换存储管理方式连续分配**分段存储管理方式***…...

本地主机部署开源企业云盘Seafile并实现外部访问

Seafile是一个开源、专业、可靠的云存储平台&#xff1b;解决文件集中存储、共享和跨平台访问等问题。这款软件功能强大&#xff0c;界面简洁、操作方便。 本文将详细的介绍如何利用本地主机部署 Seafile&#xff0c;并结合nat123&#xff0c;实现外网访问本地部署的 Seafile …...

微前端 - Native Federation使用完整示例

这是一个极简化的 Angular 使用angular-architects/native-federation 插件的微前端示例&#xff0c;只包含一个主应用和一个远程应用。 完整示例展示 项目结构 federation-simple/ ├── host-app/ # 主应用 └── remote-app/ # 远程应用 创建远程应用 (remote…...

自然语言处理——语言模型

语言模型 n元文法参数估计数据平滑方法加1法 神经网络模型提出原因前馈神经网络&#xff08;FNN&#xff09;循环神经网络 n元文法 大规模语料库的出现为自然语言统计处理方法的实现提供了可能&#xff0c;统计方法的成功应用推动了语料库语言学的发展。 语句 &#x1d460; …...

数据库管理与高可用-MySQL高可用

目录 #1.1什么是MySQL高可用 1.1.1MySQL主主复制keepalivedhaproxy的高可用 1.1.2优势 #2.1MySQL主主复制keepalivedhaproxy的实验案例 1.1什么是MySQL高可用 MySQL 高可用是指通过技术手段确保 MySQL 数据库在面临硬件故障、软件错误、网络中断、人为误操作等异常情况时&…...