我使用 PPA 安装了 java-8。之后我输入了以下命令:
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
我曾听说过此命令会进行临时更改。但经过多次注销和登录后,下面的这些命令仍然有效(我认为是由于该export ...
命令):
java -version
javac -version
但是当我发出命令时:
export -p
它显示了环境变量列表,但在该列表中,不显示变量JAVA_HOME
。此外,我想知道命令如何java
仍然javac
有效!
有人能告诉我哪个文件export
命令会进行更改吗?它们是临时的还是永久的?上面还发生了什么?请详细说明!
答案1
export
是一个 shell 命令。它会影响当前正在运行的 shell 实例。它不会对任何文件进行更改。更改是临时的,仅在退出 shell 之前有效。在 shell 中设置新变量后,要使从该变量启动的其他程序可以使用它,您需要执行此操作export
。请参阅:
- 终端、控制台、Shell 和命令行之间有什么区别?
- `VAR=...` 和 `export VAR=...` 之间有什么区别?
- set、export 和 env 之间有什么区别以及我应该何时使用它们?
java
并且javac
可能会起作用,因为您使用 PPA 安装了 Java,并且安装自动将这些命令添加到PATH
(什么是 PATH 环境变量以及如何添加它?)。具体来说,仅检查版本不需要变量JAVA_HOME
。设置与否对此没有区别。显然JAVA_HOME
被其他应用程序使用,而不是 Java 编译器或 JVM。