ubuntu系统中java -version所显示的版本与/etc/profile中配置的$JAVA_HOME的关系
问题产生
ubuntu 18.04环境下,执行
java -version
发现与/etc/profile中的$JAVA_HOME所设置的java版本不同。
推测原因
最近用apt install 安装过ubuntu自带的eclipse,有可能是把一些配置覆盖了。
可能的解决方案
方案一
sudo gedit ~/.profile
在末尾加上:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_21
然后保存关闭,使用source更新下
$ source ~/.profile
使用env命令察看JAVA_HOME的值
$ env
如果JAVA_HOME=/usr/lib/jvm/jdk1.7.0_21,说明配置成功。
此前我并没有配置这个文件,我配置的是全局的/ect/profile,java -version也是生效的。暂时忽略。
方案二
据说java -version只显示环境变量中的PATH所指向的第一个含有java执行文件的版本。
打开我的环境变量
vim /etc/environment
内容如下:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
并没有我设置的java路径,/usr/bin,这个,是自动安装的openjdk的java执行文件路径,所以当前的版本显示的是它。
在前面强行插入我的java路径“/opt/jdk1.8.0_201/bin:/opt/jdk1.8.0_201/jre/bin:”,保存
source /etc/enviroment
source 生效。这时再用
java -version
就能够看到我设置的java的版本了。
java version "1.8.0_201"
这种方案能够正常显示版本,但能否正常编译,我无法再测试,因为看到了方案三,并在尝试方案三的时候,不知道怎样退回。留作一个研究课题。
方案三
修改系统默认jdk
此方案来自http://www.cnblogs.com/bluestorm/archive/2012/05/10/2493592.html
# 安装新版本的jdk
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1..0_21/bin/java
$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_21/bin/javac 300
执行了上面的两条命令,系统中就有了两个版本的java,下面两条命令,是设置系统默认使用哪个java
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac

输入前面的数字就可以设置默认的java版本。
再次执行java -version
就可以得到自定义的java版本了。
但是,这些设置是写在哪里的?就是说执行了update-alternatives以后,哪个文件被修改了?怎样退回去?有待研究。
ubuntu系统中java -version所显示的版本与/etc/profile中配置的$JAVA_HOME的关系的更多相关文章
- ubuntu系统---切换Py2.X与Py3.X版本
ubuntu系统---切换Python2.X与Python3.X版本 Python3.X将成为以后的趋势,Python2.X当前用的稍多的版本,但现在不再更新了.因此,小主电脑里也安装了好两个版本的p ...
- Linux Ubuntu系统下Java开发环境搭建
操作系统:Linux x64 / Ubuntu 14.04 Java JDK版本:jdk-8u65-linux-x64.tar.gz 声明:转载请注明出处及本文链接 1. 前往ORACLE官网下载最新 ...
- Linux更换jdk版本,java -version还是原来的版本问题
服务器上默认安装版本是: 使用jenkins最新的安装包 2.73.1,启动报错52.0!需要使用1.8进行启动. 两种方式,要么tomcat直接指定,要么修改环境变量,这里我使用修改安装java版本 ...
- 关于jdk环境变量配置成了1.6.0_39 32位jdk 的路径 cmd中java -version却还是显示 64位或者其他jdk 路径的解决方法
其实是c盘或者其他盘的 jdk 安装的太多了,把其他的都卸载掉就行了
- Ubuntu系统下adb devices 不能显示手机设备
1. 查看usb设备,命令:lsusb 结果如下:Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub B ...
- 安装oracle后java -version命令显示 jdk version "1.3.1"的原因
因为先装的JDK,后装了oracle,oracle的JDK配置把原来的jdk路径替换掉了. 我的电脑->属性->高级->环境变量->系统变量->PATH ,把JDK的路径 ...
- 把Ubuntu系统自带的源修改为国内的源,中科大源链接:https://mirrors.ustc.edu.cn/repogen/
https://mirrors.ustc.edu.cn/repogen/ Tips: 可通过 URL 的形式直接下载配置. 例如: https://mirrors.ustc.edu.cn/repoge ...
- ubuntu系统下安装pyspider:使用supervisord启动并管理pyspider进程配置及说明
首先感谢segmentfault.com的“imperat0r_”用户的文章和新浪的“小菜一碟”用户的文章.这是他们的配置文件.我参考也写了一个,在最后呢. 重点说明写在前面.本人用superviso ...
- Ubuntu系统查看显卡型号和NVIDIA驱动版本
查看GPU型号 lspci | grep -i nvidia 查看NVIDIA驱动版本 sudo dpkg --list | grep nvidia-*
随机推荐
- oracle完全删除实例
问题描述: 重建oracle库实例,因此要删除数据库实例 问题解决: 利用自用自带的dbca库管理,实现图形化删除实例 01.登录安装oracle数据库的linux 打开xshell企业版的Xman ...
- 【阿里巴巴Java开发手册——集合处理】13.集合的稳定性(order)和有序性(sort)
有序性(sort):指遍历的结果是按照某种比较规则依次排列的. 稳定性(order):指集合每次遍历的元素的次序是一定的. 如:ArrayList是order/unsort HashMap是unord ...
- jquery ajax IE
在ie上会出现,get/post 只调用一次的现象 解决方法: cache:false http://stackoverflow.com/questions/8841425/how-to-set-ca ...
- 【Android】Android的进程优先级
android对于所有进程的处理态度都是尽可能不杀死.然而,资源总共就那么多,要是对所有进程都保持宽容的话,资源总会有消耗殆尽的时候.因此,在内存不足的情况,android系统需要根据一定的策略,选择 ...
- [Aaronyang紫色博客] 写给自己的WPF4.5-Blend5公开课系列 3 - 再来一发
我的文章一定要做到对读者负责,否则就是失败的文章 --------- www.ayjs.net aaronyang技术分享 深入路径的Blend技巧课,Ay原创,自己琢磨讲解 内容已经迁 ...
- Fluent UDF【8】:编译型UDF
UDF除了可以以解释的方式外,其还可以以编译的方式被Fluent加载.解释型UDF只能使用部分C语言功能,而编译型UDF则可以全面使用C语言的所有功能. 1 编译型UDF介绍 编译型UDF的构建方式与 ...
- tensorflow笔记9:nn_ops.bias_add 函数
完整代码引入:from tensorflow.python.ops import nn_ops tensorflow version:1.9 代码演示: import os import tensor ...
- Approx Analytic Arealight
试着实现的基于分析方法的近似面积光源.
- 教你一招:[转载]使用 Easy Sysprep v4 封装 Windows 7 精品
(一) 安装与备份系统 1. 安装 Windows 7 先使用第三方分区工具(DiskGenius分区)在虚拟机中分区,然后将封装的母盘文件安装写入指定的安装盘,写入完成后重启系统开始部署. 2. 进 ...
- Java知多少(9) import及Java类的搜索路径
如果你希望使用Java包中的类,就必须先使用import语句导入. import语句与C语言中的 #include 有些类似,语法为: import package1[.package2…].c ...