Linux - Linux下Java安装路径查找;配置Java环境变量

news2025/7/14 5:32:31

一、查看Java的安装路径

1、已经安装好了JDK,也配置了环境变量

1、执行 java -version

java -version

出现了版本号,表示安装过了JDK,配置了环境变量

2、在配置过jdk的情况下,执行java -verbose指令,在打印出的文本最后两行可以看到jdk的安装路径为 

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre

java -verbose

2、 未配置JDK环境变量

执行 find / -name jre 来进行搜索

find / -name jre

window下我们找寻起来可能要麻烦些,在不同盘下输入DIR /S jre 来进行搜索

3、其他查找方法

1、which java

[root@xx ~]# which java
/usr/bin/java    

结果为执行路径,非安装路径

2、whereis java

[root@xx ~]# whereis java
java: /usr/bin/java /usr/lib/java /etc/java /usr/share/java /opt/jdk1.8.0_311/bin/java /usr/share/man/man1/java.1.gz

结果为包含java的文件目录,并非是安装路径

3、rpm -qa | grep java

java-1.8.0-openjdk-headless-1.8.0.312.b07-1.el7_9.x86_64
javapackages-tools-3.4.1-11.el7.noarch
tzdata-java-2021e-1.el7.noarch
javassist-3.16.1-10.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.171-2.6.13.2.el7.x86_64
java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64
java-1.7.0-openjdk-1.7.0.171-2.6.13.2.el7.x86_64
javamail-1.4.6-8.el7.noarch
java-1.8.0-openjdk-devel-1.8.0.312.b07-1.el7_9.x86_64
python-javapackages-3.4.1-11.el7.noarch

如果是使用rpm包安装jdk的结果,结果为jdk的依赖包,并非安装路径

4、ls -lrt

ls命令:
-a:显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-l:除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r:将文件以相反次序显示(原定依英文字母次序)
-t:将文件依建立时间之先后次序列出
-A:同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F:在列出的文件名称后加一符号;例如可执行档则加 "", 目录则加 “/”
-R:若目录下有文件,则以下之文件亦皆依序列出

ls -lrt:

即将文件以建立时间先后顺序的倒叙排列显示,从下面的结果可以看出,/usr/bin/java是执行路径,那么继续执行后面的文件路径,即可找到JDK的安装路径为

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre

[root@xx ~]# ls -lrt /usr/bin/java
lrwxrwxrwx. 1 root root 22 Mar 31 16:23 /usr/bin/java -> /etc/alternatives/java
[root@xx ~]# ls -lrt /etc/alternatives/java
lrwxrwxrwx. 1 root root 73 Mar 31 16:23 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre/bin/java

ll /usr/lib/jvm/

[root@xx ~]# ll /usr/lib/jvm/
total 0
drwxr-xr-x. 4 root root 100 Mar 31 15:51 java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
drwxr-xr-x. 3 root root  17 Mar 31 15:52 java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64
lrwxrwxrwx. 1 root root  21 Mar 31 16:23 jre -> /etc/alternatives/jre
lrwxrwxrwx. 1 root root  27 Mar 31 16:23 jre-1.7.0 -> /etc/alternatives/jre_1.7.0
lrwxrwxrwx. 1 root root  35 Mar 31 16:23 jre-1.7.0-openjdk -> /etc/alternatives/jre_1.7.0_openjdk
lrwxrwxrwx. 1 root root  54 Mar 31 15:51 jre-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64 -> java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64/jre
lrwxrwxrwx. 1 root root  27 Mar 31 16:22 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx. 1 root root  35 Mar 31 16:22 jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdk
lrwxrwxrwx. 1 root root  51 Mar 31 15:52 jre-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64 -> java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre
lrwxrwxrwx. 1 root root  29 Mar 31 16:23 jre-openjdk -> /etc/alternatives/jre_openjdk


二、配置Java环境变量

1、PATH环境变量。作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好 PATH变量后,就可以在任何目录下执行javac/java等工具了


2、CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们 需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中


3、JAVA_HOME环境变量。它指向jdk的安装目录。Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

三种方法:

1、修改/etc/profile文件

编辑 /etc/profile 文件,在文件末尾添加

[root@xx ~]# vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export是把这三个变量导出为全局变量

让/etc/profile文件修改后立即生效的方法:

1、# . /etc/profile

注:. 和 /etc/profile 有空格

2、# source /etc/profile

Linux中source命令的用法

source命令也称为“点命令”,也就是一个点符号(.);source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录

用法:

source filename 或 . filename

如: 

[root@xx ~]# . /etc/profile

或

[root@xx ~]# source /etc/profile

查看JAVA_HOME环境变量  echo $JAVA_HOME

[root@xx ~]# echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre

2、修改.bash_profile文件

[root@xx ~]# vi .bash_profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

注:在目录下可以用vi .bash_profile,在其他目录下使用vi ~/.bash_profile

3、直接在shell终端下设置变量

[root@xx ~]# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre
[root@xx ~]# export PATH=$JAVA_HOME/bin:$PATH
[root@xx ~]# export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

注:此命令只能在当前shell终端终端有效,只是临时的

三、测试

1、vi Test.java 创建类Test java文件

[root@xx opt]# vi Test.java 
public class Test {
    public static void main(String args[]) {
        System.out.println("Hello World!");
    }
}

2、javac Test.java 编译成字节码文件

[root@xx opt]# javac Test.java

3、java Test 运行程序

[root@xx opt]# java Test
Hello World!

参考文章

Linux下配置环境变量以及java安装路径查找_Mrzhuangr的博客-CSDN博客_linux安装java环境变量

Linux下配置JAVA 环境变量及查看JDK安装路径_慕城南风的博客-CSDN博客_linux查看java环境变量

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

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

相关文章

java stream中的peek()用法

文章目录前言最终操作(terminal operation)peek() vs forEach()peek() 的典型用法:协助调试总结前言 最近看到一段代码: aeFormList.stream().peek(object -> saveInfomation(object, params)).collect(Collectors.toList())…

std::shared_ptr(基础、仿写、安全性)

目录 一、c参考手册 1、解释说明 2、代码示例 3、运行结果 二、对std::shared_ptr分析 1、shared_ptr基础 2、创建shared_ptr实例 3、访问所指对象 4、拷贝和赋值操作 5、检查引用计数 三、仿写std::shared_ptr代码 1、单一对象 2、数组对象 四、shared_ptr遇到问…

MyBatis 环境搭建

MyBatis 环境搭建步骤 1.创建一张表和表对应的实体类 2.创建一个 maven 项目,把项目添加到 git 仓库 创建maven项目 教程见:Maven[项目构建工具]_chen☆的博客-CSDN博客 添加到git仓库: 3.在文件 pom.xml 添加 mybiatis 相关依赖(导入 MyBa…

Java - 利用Nacos做一个动态开关配置功能

Java - 利用Nacos做一个动态开关配置功能前言一. Nacos配置类编写二. 测试三. 展望前言 我公司里有一个Config配置功能(我相信这是很普遍的一个功能)。简单来说就是: 将相关的键值对放到这个Config配置系统里面。代码里通过这个Config配置系…

博客项目(前台功能实现)

博客项目(前台接口实现) 文章目录博客项目(前台接口实现)1.前置知识1.1Controller1.1.1ResponseResult类1.1.2该类的方法1.2Service1.3ServiceImpl1.4Mapper1.5Vo的理解1.6可能会用到的相关插件1.7设置字面量1.8后端接口测试工具2.热门文章接口分析2.1热门文章接口位置2.2接口的…

Internet Download Manager2023最新版下载器功能介绍

说到下载器在国内就不得不提迅雷,迅雷真是伟大,几乎垄断了国内的下载市场,的确,有的时候用迅雷可以下载到很不错的资源,但在没有VIP的情况下,迅雷是不友好的,相信使用迅雷的各位都有被限速过的经…

三、Eureka

文章目录一、认识服务提供者和服务调用者二、Eureka 的工作流程三、服务调用出现的问题及解决方法四、搭建 eureka-server五、注册 user-service、order-service六、在 order-service 完成服务拉取(order 模块能访问 user 模块)七、配置远程服务调用八、…

分布式锁:不同实现方式实践测评

Hello读者朋友们,今天打算分享一篇测评实践类的文章,用优雅的代码与真实的数据来讲述在分布式场景下,不同方式实现的分布式锁,分别探究每一种方式的性能情况与最终的优劣分析。 开门见山,我们先看一张表格&#xff0c…

fiddler安卓模拟器与ios手机抓包

一.安卓模拟器(雷电模拟器)抓包 1.1fiddler基本配置 1.2导出Fiddler证书 Tools -> Options -> HTTPS -> Actions -> Export Root Certificate to Desktop 在桌面上看到导出的FiddlerRoot.cer证书文件 1.3下载和安装openssl openssl下载地址 git终端输入 open…

蜂鸟E203学习(一)--RISC的前世今生

第一章 CPU之前世今生 1.1、CPU众生相 1.1.1 处理器(cpu)和处理器内核(core)的区分 处理器严格意义上是soc,包含了内核和其他设备或者存储器. 1.1.2 不同CPU架构的诞生时间 CPU架构诞生时间Intel 80861978年ARM19…

Opencv之Mat常用类成员(一篇就够了)

1. 重要类成员 data:数据存储的起始地址 (uchar*类型);dims:矩阵维度。如 3 * 4 的矩阵为 2 维, 3 * 4 * 5 的为3维;channels():通道数量,矩阵中表示一个元素所需要的值的个数。例:…

Docker-系统环境

Docker1.Docker与虚拟机的区别2.Docker主要解决的问题3.镜像和容器4.Docker的安装9.查找镜像10.常用命令11.安装数据库12.安装tomcat13.容器使用注意事项1.Docker与虚拟机的区别 Docker是开发运行和部署应用程序的开发管理平台,它类似于虚拟机,可以独立…

七、Feign

文章目录一、Feign实现远程调用1.替换RestTemplate发起远程调用,RestTemplate存在的问题:2.实现Feign远程调用:二、Feign的自定义日志1.Feign可修改的配置如下2.方式一:配置文件方式3.方式二:Java代码方式一、Feign实现…

Qt:信号与槽机制

说实话,Qt给我的感觉像一种魔改版c,不纯粹,看不到内部的源代码,也不知道一些宏是怎么实现的... 信号与槽内部机制 回归正题,其实学过设计模式的应该都能看出来,qt的这个机制是一个观察者模式; …

又解锁了一种OpenFeign的使用方式!

引言 Hello 大家好,这里是Anyin。 在关于OpenFeign那点事儿 - 使用篇 中和大家分享了关于OpenFeign在某些场景下的一些处理和使用方法,而今天Anyin再次解锁了OpenFeign的又一个使用场景,只能说真香。 在我们日常开发中,相信大家…

SSM框架-MyBatis基础

1. MyBatis简介 1.1 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis,2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。 iBa…

Pipelines in Shell

本篇文章内容需要读者知道 shell 的一些语法和作用,知道 shell 的用途,和一些基本的用法。 这里可以查看原文:Pipelines in Shell 学习 shell 脚本必须要理解 pipeline 的概念,知道 command 的输入(input)和…

编译概念总结

一个很笨很笨的人的编译自救笔记。 1 程序设计语言 程序设计语言用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。 程序设计语言由三个方面的因素,语法…

[附源码]SSM计算机毕业设计商场日常维修管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

深度学习(19):nerf论文公式理解

注:有问题欢迎评论留言,但尽量不要喷呀。 1. nerf论文第四章翻译如下: 我们的5D神经辐射场将场景表示为空间任意点的体积密度和定向发射辐射(directional emitted radiance)。我们使用经典体积渲染(class…