JAVA#u HOME isn';在关闭终端实例后,设置/保存到path变量
直到最近,我一直在使用Java1.7作为我的代码库,最近我们已经升级到Java8。 当我试图将.bash\u profile/.bashrc文件中的JAVA\u HOME变量设置为:JAVA#u HOME isn';在关闭终端实例后,设置/保存到path变量,java,bash,macos,terminal,environment-variables,Java,Bash,Macos,Terminal,Environment Variables,直到最近,我一直在使用Java1.7作为我的代码库,最近我们已经升级到Java8。 当我试图将.bash\u profile/.bashrc文件中的JAVA\u HOME变量设置为: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH 保存并使用source.bash_概要文件,java版本指向: Nitin-Vegi
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
保存并使用source.bash_概要文件,java版本指向:
Nitin-Vegis-MacBook-Pro:/ nitinsuryavegi$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
但是当我退出终端/关闭会话并重新检查java版本时,它指向旧版本,如下所示:
Nitin-Vegis-MacBook-Pro:/ nitinsuryavegi$ java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
你能帮我永久地设置JAVA_主路径吗?这样我就不需要每次登录终端时都运行source.bash_配置文件来将JAVA版本从1.7更改为1.8
还有谁能帮我理解一下:
java version "1.7.0_79"
你能帮我永久地设置JAVA_主路径吗?这样我就不需要每次登录终端时都运行source.bash_配置文件来将JAVA版本从1.7更改为1.8 在UNIX/Linux上,一种可能是将全局设置放入
/etc/profile
。然而,我不知道这是否适用于MacOS。在您的情况下,可能是您将设置放在了错误的文件中,或者是您将错误的设置放在了正确的文件中
但这是“ManBash”关于shell初始化(在我的Linux系统上)的说法:
当bash作为交互式登录shell调用时,或者作为带有--login
选项的非交互式shell调用时,它首先读取并执行文件/etc/profile
中的命令(如果该文件存在)。读取该文件后,它将按顺序查找~/.bash\u profile
、~/.bash\u login
和~/.profile
,并从第一个存在且可读的文件读取和执行命令
当启动非登录shell的交互式shell时,bash从~/.bashrc
读取并执行命令(如果该文件存在)。这可以通过使用--norc
选项来禁止。--rcfile
file选项将强制bash从文件中读取和执行命令,而不是~/.bashrc
还有人能帮我理解一下:1).bash_文件和.bashrc文件之间的区别 见上文
2) 当我在系统首选项中检查Java运行时版本时,它被指向1.8,但当我运行
$ java -version
我得到这个输出:
java version "1.7.0_79"
我猜您的shell初始化文件将覆盖您在系统首选项中设置的内容。此外,我怀疑您可能误解了shell如何查找命令。正如“manbash”所解释的,shell实际上将使用$PATH
变量搜索命令。这就是您应该检查的变量,以找出java-version
和whereis-java
的行为不符合预期的原因
您可以通过键入来检查shell中的实际环境变量设置
$ export
3)
$JAVA_HOME
和JAVA
命令在哪里有什么区别
第一个是环境变量。。。这不是命令搜索路径。第三方工具通常使用它来定位JDK/JRE。但是JDK/JRE工具本身忽略了它
第二个是一个内置命令,它尝试在shell的实际命令搜索路径上查找命令
关闭终端实例后,未将JAVA_HOME设置/保存到path变量
这是不对的。保存后,它会立即保存到PATH变量中。但是,它不影响当前打开的终端窗口,只影响新窗口。关闭终端窗口与此无关。您使用的是哪个版本的Mac OS X?Mac OS Sierra版本10.12.2(两天前刚刚升级)。即使我关闭并打开了一个新的终端实例,它也不会保存。