“导出”命令在哪个系统文件中进行更改?

Ank*_*hah 2 filesystem command-line bash java environment-variables

我使用 PPA 安装了 java-8。之后我发出了一个命令:

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
Run Code Online (Sandbox Code Playgroud)

我在某处听说此命令会进行临时更改。但是经过多次注销和登录后,下面的这些命令仍然有效(我认为由于该export ...命令):

java -version
javac -version
Run Code Online (Sandbox Code Playgroud)

但是当我发出命令时:

export -p
Run Code Online (Sandbox Code Playgroud)

它显示了一个环境变量列表,但在该列表中,不显示 variable JAVA_HOME。此外,我想知道的命令java,并javac仍然有效!

有人可以告诉我在哪个文件export命令中进行更改吗?它们是临时的还是永久的?上面还有什么?请详细说明!

mur*_*uru 6

export是一个shell命令。它会影响当前运行的 shell 实例。它不会对任何文件进行更改。这些更改是暂时的,仅在 shell 退出之前有效。一旦您在 shell 中设置了一个新变量,要使其对从它启动的其他程序可用,您export就可以了。看:

java并且javac可能会起作用,因为您使用 PPA 安装了 Java,并且安装会自动将这些命令添加到PATH什么是 PATH 环境变量以及如何添加到它?)。具体来说,只检查版本不需要JAVA_HOME变量。无论您是否设置它都没有区别。并且显然JAVA_HOME被其他应用程序使用,而不是 Java 编译器或 JVM。