在MacOSX上,如何在Java1.7和Java1.8之间来回切换?

在MacOSX上,如何在Java1.7和Java1.8之间来回切换?,java,macos,Java,Macos,我试图在我的机器上安装两个版本的Java,并在它们之间来回移动。最好的方法是什么?如果您正在迁移到Java 8,但仍然希望运行Java 7,下面的脚本可能会对您有所帮助 分步指南 此脚本使您能够在Java1.7和Java1.8之间切换 将下面的代码块插入主目录中的.bashrc或.bash\u配置文件脚本中 function setjdk() { if [ $# -ne 0 ]; then removeFromPath '/System/Library/Frameworks/JavaV

我试图在我的机器上安装两个版本的Java,并在它们之间来回移动。最好的方法是什么?

如果您正在迁移到Java 8,但仍然希望运行Java 7,下面的脚本可能会对您有所帮助

分步指南
此脚本使您能够在Java1.7Java1.8之间切换

将下面的代码块插入主目录中的
.bashrc
.bash\u配置文件
脚本中

function setjdk() {
  if [ $# -ne 0 ]; then
   removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
   if [ -n "${JAVA_HOME+x}" ]; then
    removeFromPath $JAVA_HOME
   fi
   export JAVA_HOME=`/usr/libexec/java_home -v $@`
   export PATH=$JAVA_HOME/bin:$PATH
  fi
 }
function removeFromPath() {
  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
}

#set default jdk version
setjdk 1.7.0_60
设置bash启动脚本后,可以使用以下命令在命令行中的版本之间切换

$ setjdk 1.7
$ java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)
切换回Java1.8并验证您的版本。运行以下命令

$ setjdk 1.8
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

如果您在不同的JDK上运行特定的应用程序,那么最简单的方法可能是为每个应用程序创建一个脚本。您只需设置适当的环境变量,然后对所需的java可执行文件进行完全路径设置

您设置的变量应该是临时的——只是在脚本的生命周期内

这对于所有java应用程序来说都不是一个坏主意,而不是一直键入“java-jarxxx”


如果你想用两个不同版本的java运行同一个应用程序(例如测试),那么你的应用程序或Pritam的解决方案需要两个启动脚本。

我在我的
.bash\u profile
中使用了这个脚本有好几年了,它非常棒。按照广告的方式工作。在哪种情况下,您需要在这两种情况之间进行切换?请注意,这只会影响命令行将看到的java。它不会影响浏览器插件。此外,它可能不会影响IDE使用的java。@cricket_007在处理两个不同的项目时,有时需要在这两个项目之间来回切换。我必须同时处理三个应用程序,其中两个是基于Java1.7构建的,并且使用内部框架,而内部框架不适用于1.8。