1、Linux环境中Java环境没配置
所使用的的Linux的java任然是系统自带的java版本,更多细节自行百度;
2、Linux环境变量配置文件的问题
通常我们在安装java的时候,所配置的环境大多都是配置/etc/profile文件,但问题是Linux的环境变量可以配置在多个文件,如/etc/profile, /etc/profile.d/*.sh, ~/.bashrc 等。
下面说明上述几个文件之间的关系和区别:
- bash 的运行模式可分为 login shell 和 non-login shell。
例如, 我们通过终端,输入用户名、密码,登录系统之后,得到就是一个 login shell,而当我们执行以下命令 ssh hadoop103 command,在 hadoop103 执行 command 的就是一个non-login shell。 - 这两种 shell 的主要区别在于,它们启动时会加载不同的配置文件, login shell 启动时会加载/etc/profile, non-login shell 启动时会加载~/.bashrc。而在加载 ~/.bashrc(实际是 ~/.bashrc 中加载的/etc/bashrc) 或/etc/profile 时, 都会执行如下代码:

因此不管是 login shell 还是 non-login shell, 启动时都会加载/etc/profile.d/*.sh 中的环境变量。 - 但问题是我们配置java时候的/etc/profile文件,并不会在non-login shell时候被加载,所以在执行脚本的远程命令的时候不会加载non-login shell,也自然就会出现bash:java:command not found问题;
综上所述,解决第二种问题的方式就是自己再配置一个/etc/profile.d/*.sh文件,将我们的Java环境变量配置到这个文件中。(我自己是配置一个/etc/profile.d/my_env.sh文件)。
Linux环境Java配置与环境变量加载问题解析
本文探讨了Linux环境下Java环境未配置及环境变量配置文件的问题。当使用默认系统Java版本时,需要手动配置。Linux的环境变量可配置在多个文件,如/etc/profile、/etc/profile.d/*.sh、~/.bashrc等。不同shell启动时加载不同配置文件,loginshell加载/etc/profile,non-loginshell加载~/.bashrc。为确保non-loginshell也能加载Java环境,需要在/etc/profile.d/下创建一个sh文件来设置Java环境变量。本文提供了解决此问题的具体步骤和建议。
2520

被折叠的 条评论
为什么被折叠?



