首页 > 系统相关 >Ubuntu java配置环境变量后,开启新终端窗口环境变量失效

Ubuntu java配置环境变量后,开启新终端窗口环境变量失效

时间:2023-08-02 13:44:24浏览次数:37  
标签:profile java 配置文件 配置 Ubuntu HOME 环境变量

先给出解决方案

第一种

  • 每打开一次终端都输入一次 source /etc/profile,这样就可以加载配置文件,环境变量自然就有了

第二种

  • 输入vim ./bashrc,在底部添加配置在/etc/profile里的配置,这样就可以无需使用source命令加载了
  • 也可以在./bashrc底部添加 source /etc/profile,也能达到相同的效果,前提是配置文件(profile)里有相应的配置

如何进行配置

首先明白环境变量是什么

  • 环境变量可以理解为整个系统的变量,这个变量配置了我们无论在什么地方都能够使用这个变量,你在环境变量里配置了java,那么无论在哪都能使用java相关的命令,所以为什么要先配置环境变量,其实就是为了方便
  • 系统能够自动根据环境变量里的路径去寻找我们输入的命令

理解了环境变量,然后开始去配置环境,以java为例

# etc/profile

export JAVA_HOME=/usr/local/programs/jdk1.8.0_231
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
  • JAVA_HOME就是给java的一个目录命名,方便以后进行开发,比如Tomcat就需要使用到这个JAVA_HOME这个环境变量,这个配置的只是标明jdk的目录,Windows上就是在环境变量里直接配置就行,path里配置的是编译器的位置
  • JRE_HOME就是jre的目录,如果java版本较高,是不用这个jre目录的,$JAVA_HOME就是取这个路径,可以直接写成/usr/local/programs/jdk1.8.0_231/jre,这么写是为了方便,Windows同理,可以写全路径也可以使用这种方式
  • CLASSPATH这个一般不需要配置这个,因为我们的开发环境基本都是做好java工程项目的配置的,这个只是说使用记事本啥的写一个程序,比如.这个路径就是当前目录,你在某个目录里写了一个java文件,发现能编译,但是运行会报错找不到主类,就是java命令没有根据当前目录去找,而是跑到了CALSSPATH里有的路径去找
  • PATH这个就是和Windows里的path差不多了,这个路径就是编译器所在的位置,那些java命令全在这个路径里
  • 至于export命令就是将配置环境变量的一个命令了

配置完成后使用 source /etc/profile命令加载配置文件,使配置文件生效,至于怎么配置,理解了配置原理,需要什么配置什么

./bashrc

这是一个配置文件,与profile不同

  • 这里作简要了解,profile这个配置文件是全局的,想要让这个配置文件生效,那就要使用source命令,但是当我们切换终端或者重启,相关配置文件就不行了,你开开启一个终端,什么都不做,这个配置文件你配置的环境变量是不生效的,source命令只在当前终端生效,切换一个就不行了
  • 但是./bashrc这个文件就是你每打开一次终端,都会执行里面的相关配置

标签:profile,java,配置文件,配置,Ubuntu,HOME,环境变量
From: https://www.cnblogs.com/eatingyugan/p/17506609.html

相关文章

  • 在校生如何面向面试地学习Java
    在校生如何面向面试地学习Java最近我在博客园里,看到不少在校的同学在学java,而且,在我最近举办的一次直播活动中,也有不少在校生同学来提问,java该怎么学。对于那些已经工作的同学,哪怕才工作不久,毕竟也能从项目实践里总结和探索java的学习途径和相关方法。但在校生同学由于没机会接......
  • Java单例模式
    单例模式线程安全的四种创建方式静态代码块,静态内部类,双重检锁,枚举模式代码展示静态代码块privatestaticfinalSingletonDemoSINGLETON_DEMO;static{SINGLETON_DEMO=newSingletonDemo();}privateSingletonDemo(){}publicstaticSingletonDemoget......
  • JavaScript学习 -- SM4算法应用实例
    SM4算法,也被称为国密算法,是中国公布的一种高效且安全的对称加密算法。在JavaScript中,我们可以通过使用CryptoJS库来实现SM4算法的加密和解密。本篇博客将为您介绍如何在JavaScript中使用SM4算法,并提供一个实际的案例。首先,确保您已经引入了CryptoJS库。以下是一个使用SM4算法进行加......
  • Java设计模式--装饰器模式
    Java设计模式--装饰器模式一、问题背景在项目场景中,有这样一个需求,需要对录入的加班进行规则校验,包括但不限于,对加班的录入时间进行检查,对录入的加班类型进行检查,对加班日期的班次进行对比检查,对潜入系统的时长进行对比检查等等。具体来说,就是对一条加班记录,进行多种规则的检查......
  • java 查看class文件的jdk版本的两种方式(编译版本)
    1.情景展示有时候我们需要知道jar包里面class文件的jdk编译版本,来排查错误。以上图为例,如何实现?2.具体分析将其中一个class文件解压出来,然后查看大致的jdk版本号。3.解决方案使用解压工具打开gridreport.jar,将Report.class解压到桌面。方式一:使用文本编辑工具EditPlus......
  • Java空指针异常
    java是没有指针的,java的指针是指java的引用,空指针即为空引用,空指针异常即为【引用本身为空,却调用了方法】除去静态变量与静态方法,成员变量与方法都是属于对象的,只有在对象中才存在相对应的成员变量与方法,然后再通过对象去调用这些成员变量和方法......
  • ubuntu系统升级软件sudo apt upgrade后GPU崩溃报错,显示驱动版本不匹配——ubuntu系统
     ubuntu系统升级软件(sudoaptupgrade)后,GPU崩溃报错,查看系统日志: Aug206:25:02lcwtrsyslogd:[originsoftware="rsyslogd"swVersion="8.32.0"x-pid="2059"x-info="http://www.rsyslog.com"]rsyslogdwasHUPedAug207:17:01lcwtC......
  • Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: int
    执行mybatis的mapper方法时,报错了这个错。通过网上查找,发现了是JDK版本和oracle版本不一致导致的。(我直接从JDK1.8换成JDK11就可以了) 以下内容转自:FailedtoobtainJDBCConnection;nestedexceptionisjava.sql.SQLException:oracle.jdbc.OracleDriver_小沈同学_的博客-CS......
  • Java面试题 P40:数据库篇:MySql篇-用过分库分表吗?
            ......
  • java双环境安装
    0x00 前言在此之前已经有jdk1.8了,需要再配一个jdk17参考链接:https://www.jb51.net/article/278326.htm下载链接: https://www.oracle.com/java/technologies/downloads/#java17  0x01 安装忘截图了,无脑下一步,指定路径跟之前的jdk在同一目录下就行  0x02 环境变......