如何在OS-X上同时运行两个不同版本的Java?

时间:2019-04-28 05:12:25

标签: macos java-8 development-environment java-11 gosu

我不确定是将它放在“超级用户”还是“堆栈溢出”上,但我选择此处是因为它涉及到Gosu programming language的软件开发。

Gosu编程语言需要Java 8,并且不接受Java 11或更高版本的JDK / JRE(不确定哪个是相关的)。这是一个问题,因为我拥有Java 11,并且开发团队已经让这个问题困扰了很长时间。它位于错误跟踪器上,很长时间以来没有人对此做任何事情。

我需要使用Java 8和Java 11设置开发环境,并在具有Java 8的环境中安装Gosu,然后弄清楚如何修改Gosu的源代码以使其与Java 11兼容。来自开发和项目分叉的人的指导与此相似吗?

3 个答案:

答案 0 :(得分:3)

关于Gosu和Java 11,Gosu的最新版本1.15.0仅支持Java 11。

答案 1 :(得分:2)

我将下载docker并为每个jdk环境设置单独的docker容器。然后在适当的位置添加gosu语言项目具有的任何其他依赖关系。 docker容器会将一组依赖项分开,并防止它们相互干扰。

答案 2 :(得分:2)

这可以分为3个问题

  1. 安装多个JDK版本
  2. 每个项目的默认设置以供您自己开发
  3. 在OSX上运行时选择特定版本

对于主要的本地开发,您可能需要像这样的流程

使用brew安装多个JDK版本

$ brew cask install caskroom/versions/java11
$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8

$ ls /Library/Java/JavaVirtualMachines/
adoptopenjdk-12-openj9.jdk graalvm-ce-1.0.0-rc14      jdk1.8.0_65.jdk            openjdk-11.0.2.jdk

然后选择使用jEnv进行开发(可与bash配合使用)https://www.jenv.be/

对于脚本,如果在OSX中运行,请使用java_home

$ /usr/libexec/java_home -v 11
/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home
$ /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/graalvm-ce-1.0.0-rc14/Contents/Home
相关问题