前言

这几天一直在学java, 所以配置环境变量是必不可少的步骤,然后我简单的研究了一下,当然也只是皮毛而已

环境变量的就近原则

我电脑下载了oracle公司的jdk(手动配置环境变量), 和直接源里面安装的 openjdk,但是我发现尽管我手动配置了 oracle jdk 的环境变量,java命令调用的还是 openjdk,而通过echo $PATH 可以看到我配置的环境变量已经生效了。后来我发现这个其实就是一个就近原则(之前有一位大佬跟我说过,没太在意),当你输入java 命令时,他首先会到 PATH环境变量中前面的目录寻找这个命令,那么 openjdkjava 命令路径在 /usr/bin/java ,在 $PATH/usr/bin 在我手动配置的环境变量前面,所以这样肯定会先找到 openjdkjava 命令
解决办法:
将手动配置的环境变量放到前面,可以这样写

export PATH=$JAVA_HOME/bin:$PATH

这样就会先查找到你配置的java路径了

不同文件配置环境变量的作用范围

1. /etc/profile

这个文件作用范围是全局,在这个文件后面几行写入你配置的环境变量后,你电脑上的所有用户(包括root用户)都会调用到你配置的环境变量。不过这有个问题,就是配置完环境变量后不能立即生效(只能注销或重启),我看了一些别的文章说用 source命令或. 直接执行,但其实这些操作只会临时的在 当前终端生效,关闭当前终端,启用新终端还是不会生效,所以还是老老实实的注销或重启吧
另外用 su 登录到root用户这样的登录,没有加载你配置 PATH 环境变量(其余手动配置的环境变量加载了),应该使用 su - 或者 su - root 来登录

2. 家目录/.profile

这个文件作用范围是对应用户,但是也是需要注销或重启

3. 家目录/.bashrc

在这个文件的作用范围也是对应用户,但是更改后只要新启动一个终端就会生效,不需要注销或重启,其实你每次新启动终端 .bashrc中的脚本就会执行一遍,包括你在纯文本终端登录后也会执行一遍这个脚本,所以才会生效

关于linux配置java环境变量问题的更多相关文章

  1. linux配置java环境变量(详细)

    linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...

  2. linux配置java环境变量

    linux配置java环境变量(详细) 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586. ...

  3. linux配置java环境变量(转)

    linux配置java环境变量(详细) 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586. ...

  4. linux配置java环境变量jdk jre(详细)【转】

    linux配置java环境变量(详细) 本文完全引用自: http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk ...

  5. linux配置java环境变量(详细)(转)

    linux配置java环境变量(详细) 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586. ...

  6. Linux配置java环境变量 【随手记】

    JAVA环境变量 1. PATH环境变量.作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序. 2. CLASSPATH环境变量.作用是 ...

  7. linux配置java环境变量(详细) -copy

    一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车, ...

  8. linux配置java环境变量(详细)【转】

    转自:http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux ...

  9. linux配置java环境变量 转过几个,这个最详细和靠谱

    一. 解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录,之后会在当前目录下生成一个jdk1.6.0_14目录二. 需要配置的环境变量 1. PATH环境 ...

  10. Java学习笔记之linux配置java环境变量(三种环境变量)

    0x00 压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车 ...

随机推荐

  1. 详解字符编码与 Unicode

    人类交流使用 A.B.C.中 等字符,但计算机只认识 0 和 1.因此,就需要将人类的字符,转换成计算机认识的二进制编码.这个过程就是字符编码. ASCII 最简单.常用的字符编码就是 ASCII(A ...

  2. kali2020.1修改root密码,以最高权限登录系统

    普通用户权限登录系统 sodu su切换为root权限 passwd root 按提示输入密码 再次输入密码 更新密码 右上角点切换用户 root/xxxx 更改成功,下面公布操图片

  3. 微信公众号商城、小程序商城、H5商城 实例 前后端源码

    CRMEB客户管理+电商营销系统  https://gitee.com/ZhongBangKeJi/CRMEB 演示站后台: http://demo.crmeb.net/admin 账号:demo 密 ...

  4. MasaFramework的MinimalAPI设计

    在以前的MVC引用程序中,控制器负责接收输入信息.执行.编排操作并返回响应,它是一个功能齐全的框架,它提供了过滤器.内置了模型绑定与验证,并提供了很多可扩展的管道,但它偏重,不像其它语言是通过更加简洁 ...

  5. ProxySQL(1):简介和安装

    文章转载自:https://www.cnblogs.com/f-ck-need-u/p/9278818.html ProxySQL有两个版本:官方版和percona版,percona版是在官方版的基础 ...

  6. 18个一线工作中常用的Shell脚本

    1.检测两台服务器指定目录下的文件一致性 #!/bin/bash ###################################### 检测两台服务器指定目录下的文件一致性 ######### ...

  7. Linux Hardening Guide

    文章转载自:https://madaidans-insecurities.github.io/guides/linux-hardening.html 1. Choosing the right Lin ...

  8. Alertmanager配置概述

    Alertmanager主要负责对Prometheus产生的告警进行统一处理,因此在Alertmanager配置中一般会包含以下几个主要部分: 全局配置(global):用于定义一些全局的公共参数,如 ...

  9. java基础之常用类1

    java基础 以下内容为本人的学习笔记,如需要转载,请声明原文链接   java常用类: 1.内部类 2.Object类 3.Object类常用方法 4.包装类 5.String类 6.BigDeci ...

  10. Containerd-1.6.5 镜像容器操作

    一.Containerd 镜像操作 1 基本参数 [root@ecs-65685 ~]# ctr c NAME: ctr containers - manage containers USAGE: c ...