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

001 CentOS 7.9 安装及配置jdk-8u411-linux-x64.tar.gz

文章目录

    • 1. 下载JDK安装包
    • 2. 创建安装目录
    • 3. 上传并解压JDK安装包
    • 4. 配置环境变量
    • 5. 验证安装
    • -bash: pathmunge: command not found
    • 配置文件区别
    • $PATH

https://dbeaver.io/

1. 下载JDK安装包

首先,需要从Oracle官方网站或其他可信赖的来源下载jdk-8u411-linux-x64.tar.gz安装包。

2. 创建安装目录

在终端中执行以下命令,创建一个用于存放JDK的目录(如果尚未创建):

sudo mkdir /usr/tools

可以选择其他目录作为安装位置,这里以/usr/tools为例。

3. 上传并解压JDK安装包

将下载的jdk-8u411-linux-x64.tar.gz文件上传到刚刚创建的目录中,然后使用以下命令解压:

sudo tar -zxvf /path/to/jdk-8u411-linux-x64.tar.gz -C /usr/tools/

将/path/to/替换为实际存放jdk-8u411-linux-x64.tar.gz文件的路径。

4. 配置环境变量

接下来,需要配置JDK的环境变量。使用文本编辑器(如vim)打开/etc/profile文件:

sudo vim /etc/profile

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

export JAVA_HOME=/usr/tools/jdk1.8.0_411  
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
export PATH=$JAVA_HOME/bin:$PATH

请注意,jdk1.8.0_411应替换为解压后的JDK文件夹的实际名称。

保存并关闭文件后,执行以下命令使环境变量生效:

source /etc/profile

# /etc/profile# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.pathmunge () {case ":${PATH}:" in*:"$1":*);;*)if [ "$2" = "after" ] ; thenPATH=$PATH:$1elsePATH=$1:$PATHfiesac
}if [ -x /usr/bin/id ]; thenif [ -z "$EUID" ]; then# ksh workaroundEUID=`/usr/bin/id -u`UID=`/usr/bin/id -ru`fiUSER="`/usr/bin/id -un`"LOGNAME=$USERMAIL="/var/spool/mail/$USER"
fi# Path manipulation
if [ "$EUID" = "0" ]; thenpathmunge /usr/sbinpathmunge /usr/local/sbin
elsepathmunge /usr/local/sbin afterpathmunge /usr/sbin after
fiHOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; thenexport HISTCONTROL=ignoreboth
elseexport HISTCONTROL=ignoredups
fiexport PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; thenumask 002
elseumask 022
fifor i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; doif [ -r "$i" ]; thenif [ "${-#*i}" != "$-" ]; then . "$i"else. "$i" >/dev/nullfifi
doneunset i
unset -f pathmunge# JDK 8 Environment Variables  
#export JAVA_HOME=/usr/tools/jdk1.8.0_411  
#export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
#pathmunge $JAVA_HOME/bin#pathmunge () {  
#    case ":${PATH}:" in  
#        *:"$1"*:)  
#            ;;  
#        *)  
#            if [ "$2" = "after" ] ; then  
#                PATH=$PATH:$1  
#            else  
#                PATH=$1:$PATH  
#            fi  
#    esac  
#}export JAVA_HOME=/usr/tools/jdk1.8.0_411  
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  
export PATH=$JAVA_HOME/bin:$PATH

5. 验证安装

最后,可以通过运行以下命令来验证JDK是否正确安装:

java -version

如果一切正常,将看到输出的Java版本信息,例如:java version “1.8.0_411”。

注意事项:
确保有足够的权限执行上述操作,可能需要使用sudo命令来获取管理员权限。
如果系统中已经安装了其他版本的Java,请确保更新环境变量以指向新安装的JDK。

-bash: pathmunge: command not found

在 CentOS 7 系统中,如果在执行 source /etc/profile 时遇到了 -bash: pathmunge: command not found 的错误,这意味着 /etc/profile 文件中引用了一个名为 pathmunge 的函数,但是这个函数在当前的 shell 环境中没有被定义。

pathmunge 通常是一个用于修改 PATH 环境变量的 shell 函数,在 CentOS 和其他基于 Red Hat 的系统中,这个函数有时会被定义在 /etc/profile 或与 /etc/profile.d/ 目录下的某个脚本文件中。当系统启动时,这些脚本会被执行,从而定义这个函数。

为了解决这个问题,你可以尝试以下几个步骤:

检查 /etc/profile 或 /etc/profile.d/ 下的脚本:
查看这些文件中是否有 pathmunge 函数的定义。如果没有,你可能需要手动添加这个函数,或者从其他正常的 CentOS 7 系统中复制这个函数定义到你的系统中。
手动定义 pathmunge 函数:
如果找不到 pathmunge 函数的定义,你可以在 /etc/profile 文件的末尾或者你自己的 ~/.bashrc 或 ~/.bash_profile 文件中添加以下定义:

pathmunge () {  case ":${PATH}:" in  *:"$1"*:)  ;;  *)  if [ "$2" = "after" ] ; then  PATH=$PATH:$1  else  PATH=$1:$PATH  fi  esac  
}

这个 pathmunge 函数的作用是向 PATH 环境变量中添加一个新的路径。如果指定的路径已经存在于 PATH 中,则不会进行任何操作。否则,它会根据第二个参数(after 或其他任何值)来决定是将新路径添加到 PATH 的末尾还是开头。
重新加载配置:
在添加了 pathmunge 函数的定义之后,你需要重新加载配置以使更改生效。你可以通过执行 source /etc/profile 或重新登录你的用户账户来完成这个操作。

配置文件区别

在Linux和Unix系统中,~/.bash_profile、~/.bashrc和/etc/profile是用于配置用户环境的文件,但它们在使用和加载时机上有所区别。~/.bash_profile:
当用户登录时,bash shell会首先读取~/.bash_profile文件。
它主要用于设置环境变量、运行命令或脚本,在用户登录时进行一次性的初始化设置。
通常,~/.bash_profile会在结束时调用~/.bashrc,以确保在用户登录时也执行~/.bashrc中的设置。
这个文件是针对每个用户的,位于用户的主目录下。
~/.bashrc:
当用户打开一个新的shell(非登录shell),或者在一个已经登录的shell中开启一个新的bash实例时,~/.bashrc会被读取。
它包含用户每次打开新的bash shell时都需要运行的命令。
通常用于设置别名、函数、环境变量等,这些设置对于非登录shell也是必要的。
这个文件也是针对每个用户的,位于用户的主目录下。
/etc/profile:
这是一个全局配置文件,对所有用户都有效。
当用户登录时,系统会首先读取/etc/profile文件,然后再读取用户的~/.bash_profile或~/.profile。
通常用于设置所有用户都需要的环境变量、系统级配置等。
/etc/profile还可以包含对其他全局或特定用户配置文件的引用,如/etc/profile.d/目录下的脚本。
简而言之,~/.bash_profile和~/.bashrc是针对每个用户的个性化设置,而/etc/profile是系统级别的全局设置。这三个文件都可以用来设置环境变量和运行初始化命令,但它们的加载时机和范围有所不同。在实际使用中,根据需要进行适当的配置,以确保用户环境和系统设置符合需求。

$PATH

在配置环境变量时,$PATH的位置(在前或在后)决定了新添加的路径在搜索顺序中的位置。这通常影响的是当多个路径中存在相同名称的可执行文件时,哪个会被首先找到并执行。在您给出的配置中:bash
export PATH=$JAVA_HOME/bin:$PATH
这里将$JAVA_HOME/bin添加到了$PATH的前面。这意味着当你尝试运行一个命令时,shell会首先在$JAVA_HOME/bin目录中查找该命令。如果在这里找不到,shell才会继续沿着原来的$PATH查找。而在添加Redis的bin目录时:bash
export PATH=$PATH:/usr/local/redis/bin
/usr/local/redis/bin被添加到了$PATH的末尾。这意味着当shell沿着$PATH搜索可执行文件时,它会最后才查看/usr/local/redis/bin。为什么这样设置?这通常取决于你的具体需求和环境中可能存在的命令冲突。以下是一些可能的考虑:优先级:如果你希望$JAVA_HOME/bin中的命令优先于其他路径中的同名命令被执行,你就会把它放在$PATH的前面。这在你有多个版本的Java安装,并且想要确保使用特定版本时特别有用。
避免冲突:将新路径添加到$PATH的末尾可以减少与现有命令的冲突。例如,如果/usr/local/redis/bin中有一个名为java的可执行文件,而你将其添加到$PATH的前面,那么当你尝试运行java命令时,shell可能会错误地执行Redis目录中的java,而不是你期望的JDK中的java。
安全性和可预测性:在某些情况下,你可能不希望新添加的路径中的命令覆盖现有路径中的命令,以避免意外的行为或安全问题。将其添加到末尾可以提供更大的可预测性和安全性。
总之,$PATH中路径的顺序是一个重要的配置选择,它决定了shell如何查找和执行命令。在你的例子中,将Java路径放在前面可能是为了确保使用特定版本的Java,而将Redis路径放在后面可能是为了避免与现有命令的冲突。

相关文章:

001 CentOS 7.9 安装及配置jdk-8u411-linux-x64.tar.gz

文章目录 1. 下载JDK安装包2. 创建安装目录3. 上传并解压JDK安装包4. 配置环境变量5. 验证安装-bash: pathmunge: command not found配置文件区别$PATH https://dbeaver.io/ 1. 下载JDK安装包 首先,需要从Oracle官方网站或其他可信赖的来源下载jdk-8u411-linux-x64…...

Revit二次开发-WPF ProgressBar 执行程序中显示进度条

Revit开发执行命令时如果时间长,界面会顶住,导致用户误以为程序未响应,解决方法:增加WPF ProgressBar 进度条执行程序中显示进度条,提示命令还是进行中, 实现流程: 新建一个WPF,Window启动时加载一个事件Loaded=“Window_Loaded”,用于显示进度条在WPF后台,新建一个异…...

React:构建Web应用的未来

引言 在不断发展的Web开发领域,React已经成为一股主导力量,重塑了我们构建用户界面和交互式应用的方式。React由Facebook(现Meta)开发,由于其创新的基于组件的架构、高效的虚拟DOM渲染和声明式编程风格而广受欢迎。在…...

【Elasticsearch】Centos7安装Elasticsearch、kibana、IK分词

目录 本文安装包下载地址注意安装elasticsearch1.上传文件2.解压elasticsearch-6.3.1.tar.gz3.开启远程连接权限4.修改其他配置[root用户操作]5.重启虚拟机6.启动es7.外部访问 安装kibana-61.解压2.配置3.启动kibana4.访问5.在开发工具中做数据的增删改查操作 安装IK分词1.wind…...

IDEA中各种Maven相关问题(文件飘红、下载依赖和启动报错)

错误情况 包名、类名显示红色、红色波浪线,大量依赖提示不存在(程序包xxx不存在) 工程无法启动 一、前提条件 1、使用英文原版IDEA 汉化版的可能有各种奇怪的问题。建议用IDEA英文版,卸载重装。 2、下载maven,配置环…...

Android 13 VSYNC重学习

Android 13 VSYNC重学习 引言 学无止境,一个字干就完事! 源码参考基于Android 13 aosp! 一. Android VSync模块开胃菜 在开始正式的分析之前,我们先简单对Android的Vsync模块简单介绍下,如下图所示,其中: HW_VSync是…...

std::move和左值右值

引用:windows程序员面试指南 std::move std::move 是 C 标准库中的一个函数模板,用于将一个左值(左值引用)转化为右值引用,从而实现移动语义。 移动语义是一种可以将资源(如内存)从一个对象转…...

QT学习备份

2023年1月2日09:00:32 1.信号/槽编辑器 发送者:控件 信号:是控件发出的信号 接受者:包含控件的容器 槽:程序上用slot标识的方法 2.Q_OBJECT宏 只有继承了QObject类的类,才具有信号槽的能力。所以,为了使用…...

【wiki知识库】03.前后端的初步交互(展现所有的电子书)

📝个人主页:哈__ 期待您的关注 目录 一、🔥今日目标 二、📂前端配置文件补充 三、🌏前端Vue的改造 四、💡总结 一、🔥今日目标 在上一篇文章当中,我已带大家把后端的一些基本工…...

AOP——学习

AOP(面向切面编程)是Spring框架的重要特性之一,用于分离关注点并处理横切关注点,如日志记录、安全性和事务管理。在面试中,AOP相关的问题通常会涉及基本概念、应用场景、实际使用、以及与其他编程范式的比较。以下是一…...

Linux静态库、共享动态库介绍、制作及使用

参考学习:Linux下的各种文件 、动态库基本原理和使用方法,-fPIC选项的来龙去脉 、Linux静态库和动态库分析 文章写作参考:Linux共享库、静态库、动态库详解 - sunsky303 - 博客园 (cnblogs.com) 一.Linux共享库、静态库、动态库详解 使用G…...

【Paddle】稀疏计算的使用指南 稀疏ResNet的学习心得 (2) + Paddle3D应用实例稀疏 ResNet代码解读 (1.6w字超详细)

【Paddle】稀疏计算的使用指南 & 稀疏ResNet的学习心得 Paddle3D应用实例稀疏 ResNet代码解读 写在最前面一、稀疏格式简介1. COO(Coordinate Format)2. CSR(Compressed Sparse Row Format) 二、Paddle稀疏张量支持1. 创建 C…...

Linux系统维护

1. 批量安装部署 2. 初始化配置 3. 禁用Selinux 永久更改 SELinux 配置: 编辑 SELinux 配置文件:使用文本编辑器打开 /etc/selinux/config 文件: 在配置文件中,找到 SELINUX… 的行。将其值更改为以下选项之一: e…...

经典文献阅读之--RenderOcc(使用2D标签训练多视图3D Occupancy模型)

0. 简介 3D占据预测在机器人感知和自动驾驶领域具有重要的潜力,它将3D场景量化为带有语义标签的网格单元。最近的研究主要利用3D体素空间中的完整占据标签进行监督。然而,昂贵的注释过程和有时模糊的标签严重限制了3D占据模型的可用性和可扩展性。为了解…...

蓝牙设备中的UUID

文章目录 一、Device UUID二、Service UUID 一、Device UUID Device UUID也可以被称作为DeviceID。 Android 设备上扫描获取到的 deviceId 为外围设备的 MAC 地址,相对固定。iOS 设备上扫描获取到的 deviceId 是系统根据外围设备 MAC 地址及发现设备的时间生成的 …...

网络之再谈体系结构

大家都知道的是网络的体系结构,现代软件常用的体系结构无非是TCP/IP协议栈,OSI因为实现复杂并且效率没有TCP/IP协议栈好,所以不用OSI,但是,最近在复习网络知识的时候,发现了一些奇怪的地方,那就…...

在flutter initState 方法,触发 setState导致循环执行

在Flutter中,如果你在initState中调用了一个方法,并且这个方法可能导致状态更新,这可能会引起无限循环,因为每次状态更新都会再次调用initState。 为了避免这种情况,你应该检查调用的方法是否会导致状态更新&#xff…...

JavaScript字符串方法

charAt() 方法:返回指定索引处的字符。 示例: let str "Hello World"; console.log(str.charAt(0)); // Output: "H" console.log(str.charAt(6)); // Output: "W"charCodeAt() 方法:返回指定索引处字符的 Un…...

YD/T 2698-2014 《电信网和互联网安全防护基线配置要求及检测要求 网络设备》标准介绍

编写背景 随着互联网技术的飞速发展,网络设备的安全问题日益凸显。为了加强电信网和互联网的安全防护,保障网络环境的稳定和用户信息的安全,YD/T 2698-2014标准应运而生。此标准旨在为网络设备提供一套基线配置要求,以及相应的安…...

QCC30XX如何查找本地地址码

查找本地地址段/********************************************************************** Copyright (c) 2016 - 2017 Qualcomm Technologies International, Ltd. FILE NAME sink_private_data.c DESCRIPTION This module works as a container for all private and common…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

python/java环境配置

环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...