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

news2025/6/9 21:13:25

一、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 /nolog

Error: 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 java

which 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替换为对应版本号即可。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2405845.html

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

相关文章

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

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

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;其核心优势在于整合了多家技术供应商的接口资源。 操作方式 用户只需将音频…

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钩…

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

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

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.【风险规避…

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…

前端技能包

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…

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

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

操作系统期末版

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

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

语言模型 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 数据库在面临硬件故障、软件错误、网络中断、人为误操作等异常情况时&…

免费工具-微软Bing Video Creator

目录 引言 一、揭秘Bing Video Creator 二、轻松上手&#xff1a;三步玩转Bing Video Creator 2.1 获取与访问&#xff1a; 2.2 创作流程&#xff1a; 2.3 提示词撰写技巧——释放AI的想象力&#xff1a; 三、核心特性详解&#xff1a;灵活满足多样化需求 3.1 双重使用模…

【笔记】解决MSYS2安装后cargo-install-update.exe-System Error

#工作记录 cargo-install-update.exe-System Error The code execution cannot proceed because libgit2-1.9.dll wasnot found. Reinstalling the program may fix this problem. …