首页 > 系统相关 >Linux 中PATH、CLASSPATH等环境变量配置详解

Linux 中PATH、CLASSPATH等环境变量配置详解

时间:2023-03-27 14:47:38浏览次数:62  
标签:JAVA CLASSPATH Linux jar export HOME PATH

#set java environment
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79
export CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

#set hadoop environment
export HADOOP_HOME=/opt/hadoop-2.6.5
export PATH=${HADOOP_HOME}/bin:$PATH
export CLASSPATH=.:$HADOOP_HOME/share/hadoop/common/hadoop-common-2.6.5.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.5.jar:$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar:$CLASSPATH

第3行:

export CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar

(1) 点.表示当前路径

(2) 冒号:是分隔符,环境变量的搜索是有先后顺序的,写在前面的就会先搜索

(3) 这句的意思就是,把当前目录 和 ${JAVA_HOME}/lib/tools.jar 和 ${JAVA_HOME}/lib/dt.jar 设置为CLASSPATH环境变量。

 

第4行:

export PATH=$JAVA_HOME/bin:$PATH

(4) 这句的意思就是,把$JAVA_HOME/bin 和 $PATH设置为PATH环境变量,由于这里加上了原来的PATH,所以相当于在原来的PATH上增加了$JAVA_HOME/bin 。

 

产生的疑惑#

1. 为什么第3行的CLASSPATH不加上自身,但第9行的要加上自身$CLASSPATH ?但每次设置PATH时都要加上自身$PATH ?

答:因为CLASSPATH环境变量一开始就是空的,所以第4行可以不加上它自身,但是第9行如果不加$CLASSPATH的话,就会把第4行设置的CLASSPATH给覆盖掉。但是PATH一开始并不是空的,系统初始的时候PATH中就已经有值了(一些系统命令的保存目录),所以每次设置的时候都要加上它自身$PATH。

 

2. 为什么设置PATH的时候不加上当前目录. ?

(1) 如果在 PATH 中加入本目录(.)后,确实我们就能够在指令所在目录进行指令的执行了。 但是由于你的工作目录并非固定(常常会使用 cd 来切换到不同的目录), 因此能够执行的指令会有变动(因为每个目录底下的可执行文件都不相同嘛!),这对使用者来说并非好事。

(2) 主要是出于安全的考虑,由于系统默认是允许所有人在/tmp下写入任何文件的,万一有居心不良的用户或者黑客入侵到计算机,并在/tmp下面埋下木马,名字为ls,当用户用root身份登录后,到/tmp目录执行ls就会有意想不到的危险(因为你把当前目录加进了PATH,如果在 PATH 定义的目录中含有多个文件名为 ls 的可执行文件,那么先搜寻到的同名指令先被执行!),所以默认不把当前路径’’."加入PATH中,也不建议用户自己添加进去。

标签:JAVA,CLASSPATH,Linux,jar,export,HOME,PATH
From: https://www.cnblogs.com/libruce/p/17261469.html

相关文章

  • Linux基础第四章:用户账户与文件、目录的权限和归属
    一、用户账户1、账户类型①超级管理员:最高权限拥有者,uid=0的用户,默认是root。②普通用户:有一定权限的用户,但是权限受限制。③系统(程序)用户:不是给人用的,是给程序用的,无......
  • Linux安装
    Linux安装*物理机安装:直接将操作系统安装到服务器硬件上*虚拟机安装:通过虚拟机软件安装虚拟机(VirtualMachine):指通过软件模拟的具有完整硬件系统功能、运行在完全隔......
  • Linux基础第二章文件压缩归档及文本编辑和vi编辑器
    一、文件压缩及归档1、文件压缩gzip和bzip命令用于文件压缩,但是缺陷是压缩完成后源文件消失所以一般不用。命令格式是:gzip或者bzip +0-9的压缩等级(数字越大压缩级别......
  • Linux下JDK和JMeter部署及使用
    一、在Linux下安装JDK并配置环境变量1、下载JDKJDK8下载地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html2、rz命令上传到服务器......
  • python学习者的专属linux教程
    Linux绝对和相对路径绝对路径:以根目录为起点的路径相对路径:不是以/这个根目录为源头划分的xshell快捷键:ctrl+l清屏ctrl+d退出登录ctrl+shift+......
  • linux 删除rpm安装的jdk,修改软连接
    由于rpm安装的java使得maven读取jdk环境变量出错NB:JAVA_HOMEshouldpointtoaJDKnotaJRE。弄了半天无果,索性删除所有jdk文件重新安装 #查看Java版本java-ve......
  • mountpoint-s3 linux 构建一些问题
    依赖包问题cmake3yuminstall-ycmake3clang通过scl解决yuminstallcentos-release-sclyuminstallllvm-toolset-7scl......
  • linux rm 命令, Device or resource busy,无法删除
    环境:linuxCentOS遇到的问题:我打断了pytorch下的模型训练,导致tensorboard输出的文件无法删除。想使用rm-r删除文件夹时候遇到错误。rm:cannotremove`你的文......
  • linux sudo命令提示 command not found
    什么是sudosu是申请切换root用户,需要申请root用户密码,sudo是用户申请管理员权限执行一个操作,而此处的操作就是变成管理员。sudo是Linux系统管理指令,是允许系统管理......
  • Linux传教士必须面对的现实。。。
    问题:如何让更多人用上Linux?这个不太现实。Linux版本太多了,游戏太少。你以为人家买PC用来干什么,大部分人是用来玩游戏的,要向Linux普及,必须在娱乐上下功夫,安全性,开源性什么的......