Ubuntu在/etc/profile中配置好了Java环境,运行Java子命令无效问题(~/.bashrc等文件分析)
在一台虚拟Ubuntu设备上碰到一个奇怪问题,在/etc/profile中配置好了Java环境,运行Java子命令无效。。奇怪,这是什么原因呢? 不管他是什么原因,反正配置失败就让人很不舒服。。于是去虚拟机的jdk的bin目录下运行./java命令,没问题呀,有用的呢,这样就不太好了。于是仔细看看/etc/profile中有没有问题,还是没有问题呢! 不科学呀,去网上搜一波,网上都说是
在一台虚拟Ubuntu设备上碰到一个奇怪问题,在/etc/profile中配置好了Java环境,运行Java子命令无效。。奇怪,这是什么原因呢?
不管他是什么原因,反正配置失败就让人很不舒服。。于是去虚拟机的jdk的bin目录下运行./java命令,没问题呀,有用的呢,这样就不太好了。于是仔细看看/etc/profile中有没有问题,还是没有问题呢!
不科学呀,去网上搜一波,网上都说是环境变量配置错了,好吧,大家都知道是环境变量的问题,博主也知道,但是,不是没有错误吗?灵光一现,对,没有错误,那就是没有生效!先不管他为什么没有生效,让Java跑起来再说。
换一个能够生效的,在~/.bashrc文件中重新配置一遍,运行,OK,没有问题!
好了,我们来分析一下为什么之前为什么在/etc/profile中失败了。
之前用的是管理员用户在root权限下配置/etc/profile,这样有什么问题?
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置。
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.(每个用户都有一个.bashrc文件,在用户目录下)。
这下就明白了,管理员用户在root权限下配置/etc/profile,那就相当于给管理员用户配置了环境变量,而不是给root配置了环境变量。
退出root,管理员用户执行命令java,有效,证明理解是对的。
在~/.bashrc中配置,配置属于当前操作用户,这里那就属于root了,所以没有问题。
更多推荐
所有评论(0)