linux下jdk环境变量配置深度分析----解决环境变量不生效的问题
1.linux下jdk环境变量配置
是否需要配置环境变量,主要看java -version 显示的版本是否为你期望的版本
1.1 不需要配置环境变量的情况
使用java -version查看,版本显示正好是你刚刚安装的版本,这一般为rpm包安装的情况
rpm安装命令:rpm -ivh /data/software/jdk-7u67-linux-x64.rpm
1.2 需要配置jdk环境的情况
java -version显示的版本号不对。一般是直接解压的jdk都需要配置。
1.3 jdk环境变量配置及生效
修改/etc/profile
(有些可能改对应用户下的隐藏文件.base_profile或.profile,如root用户,对应/root/.bash_profile,/root/.profile)
|
vi /etc/profile 在末尾加入 export JAVA_HOME=/usr/java/jdk1.7.0_67 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib export PATH=$PATH:$JAVA_HOME/bin 然后执行source /etc/profile,执行可使之马上生效。 |
2.配置了环境变量后不生效的解决方案
问题:在/etc/profile中配置了环境变量,执行java -version发现版本还是不对,怎么办?
解决步骤:
1、关闭ssh连接,重新连接,再次执行java -version查看版本,有些可能是缓存,重新连接即可
2、步骤1没解决,执行步骤2,检查/etc/profile中是否书写有误,如英文单词写错了。
3、步骤2没解决,执行步骤3,看看是否有其他配置文件中配置了环境变量。
如(有些可能改对应用户下的隐藏文件.base_profile或.profile,如root用户,对应/root/.bash_profile,/root/.profile)
通过echo $PATH和echo $CLASSPATH查看,看是否有其他路径的jdk版本存在。
4、查看PATH和CLASSPATH都没有问题,但java -version还是不对怎么办?
终极绝招:分析PATH路径,
[root@localhost ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/bin:/usr/java/jdk1.7.0_67/bin:/root/bin
根据PATH中的路径从前到后的顺序查找java文件
即查找以下路径中是否存在java文件
/usr/lib64/qt-3.3/bin
/usr/local/sbin
/usr/local/bin
/sbin
/bin
/usr/bin
/usr/java/jdk1.7.0_67/bin
/root/bin
也可以使用find / -name "java"查找所有的java文件,然后看看这些java文件是否在PATH对应的目录中,
一般出问题的都在/usr/bin路径下的java文件,该文件是个链接文件,指向的真实文件并非你需要的jdk版本,可以把该文件删除,
然后重新安装jdk(rpm -ivh /data/software/jdk-7u67-linux-x64.rpm )。
如下是错误的链接文件:
[root@localhost bin]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22 8月 6 12:16 java -> /etc/alternatives/java
linux下jdk环境变量配置深度分析----解决环境变量不生效的问题的更多相关文章
- linux下jdk的安装配置
1.下载jdk:地址 选中你选择的版本,下载linux版本对应你系统的32位或64位. 我这里选择的是64位. 2.使用你的ssh直连工具把安装包丢到/usr/local/目录下 3.解压安装jdk ...
- windows+linux下jdk安装及java环境变量配置
对于初学java的用户来说,可能第一件要做的事情就是安装jdk及配置环境,以下内容主要讲述windows及linux下jdk的安装以及环境变量的配置. 1.首先下载相应平台可用版本jdk安装文件,可以 ...
- hadoop搭建杂记:Linux下JDK环境变量的设置(三种配置环境变量的方法)
Linux下JDK环境变量的设置(三种配置环境变量的方法) Linux下JDK环境变量的设置(三种配置环境变量的方法) ①修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种 ...
- Linux下jdk的安装和环境变量的配置
Linux下jdk的安装和环境变量的配置 一.jdk的下载 方式一:在官网下载 http://www.oracle.com/technetwork/java/javase/downloads/inde ...
- Linux下Jdk的安装和jdk环境变量的设置
我们在Linux下安装系统软件的时候,经常遇到一些系统环境变量配置的问题.什么是环境变量?如何定制环境变量?我将在下面做一些介绍.一.什么是环境变量?Linux是一个多用户的操作系统.多用户意味着每个 ...
- linux下lamp.sh一键配置lamp环境流程
linux下lamp.sh一键配置lamp环境流程 一.总结 一句话总结: 2.将网站从github上clone到/data/www/网站域名/ 3.更改网站目录权限:chown -R apache: ...
- 解决 Ubuntu 18.10 使用较新的独立显卡输出无法初始化图形界面并配置深度学习开发环境
原文地址:解决 Ubuntu 18.10 使用较新的独立显卡输出无法初始化图形界面并配置深度学习开发环境 0x00 配置 硬件 OS: Ubuntu 18.10 Base Board: ASUS WS ...
- Linux下Kafka单机安装配置方法(图文)
Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了 ...
- linux下WEB服务器安装、配置VSFTP
转载 http://www.oicto.com/centos-vsftp/?tdsourcetag=s_pcqq_aiomsg linux下WEB服务器安装.配置VSFTP 由 admin · 发布 ...
随机推荐
- 经典算法入门 列表C/C++
排序:插入排序.选择排序.冒泡排序.归并排序.快速排序.基数排序.计数排序.桶排序 查找:二分查找 树:先根.中根.后跟遍历 图:深度优先.广度优先.最小生成树.单元最短路径.全成对最短路径 动态规划 ...
- 九度oj 题目1203:IP地址
题目1203:IP地址 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3636 解决:1800 题目描述: 输入一个ip地址串,判断是否合法. 输入: 输入的第一行包括一个整数n(1< ...
- POJ-3692Kindergarten,求最大独立集!
Kindergarten Time Limit: 2000MS Memory Limit: 65536K Description In a kindergarten, there ar ...
- 动态规划之最长递增子序列(LIS)
在一个已知的序列{ a1,a2,……am}中,取出若干数组成新的序列{ ai1, ai2,…… aim},其中下标 i1,i2, ……im保持递增,即新数列中的各个数之间依旧保持原数列中 ...
- node框架express里面静态文件中间件express.static,根据路径名查找文件
- 是express框架下的一个方法,可以根据请求路径名查找某个文件下文件名字和路径名相同的文件 - 3.X里面有20多个中间件,但是在4.X里面 只保留了express.static - 语法 ex ...
- [K/3Cloud] 树形单据体的应用说明
1.BOSIDE制作单据,支持动态表单,单据,基础资料,报表等域模型. 2.添加列,和原来单据体一样. 3.设置主键列名,父级主键字段名,行类型字段名,节点图片字段名(没有可以为空) 4.运行时展 ...
- .net如何统计在线人数
原文发布时间为:2008-10-17 -- 来源于本人的百度文章 [由搬家工具导入] 统计在线用户的作用不言而喻,就是为了网站管理者可以知道当前用户的多少,然后根据用户数量来观察服务器或者程序的性能, ...
- 安装adt-bundle-windows-x86-20130917时遇到的问题及解决方法
最近在上安卓课,老师让我们下载此软件(adt-bundle-windows-x86-20130917.下载压缩后,打开eclipse的时候,会出现以下情况: 这时说明你的jdk还没下载或者下载错位置了 ...
- Hibernate自定义简单主键生成
Hibernate自定义主键生成 当使用Hibernate定义pojo的时候,有时候需要生成一定规则的数据表主键,这时候我们可以采用自定义主键生成方式去生成主键. 例如: 1.在pojo属性中定义数据 ...
- 条款八: 写operator new和operator delete时要遵循常规
自己重写operator new时(条款10解释了为什么有时要重写它),很重要的一点是函数提供的行为要和系统缺省的operator new一致.实际做起来也就是:要有正确的返回值:可用内存不够时要调用 ...