如何在Mac上安装Java 8

我想用最新的JavaFX做一些编程,这需要Java 8.我使用IntelliJ 13 CE和Mac OS X 9 Mavericks。 我运行Oracle的Java 8安装程序,文件看起来像他们最终在

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk 

但以前的版本是

 /System/Library/Java/JavaFrameworks/jdk1.6.... 

不知道为什么最新的安装程序把它放在/Library而不是/System/Library (或者区别是什么)。 但/usr/libexec/java_home没有find1.8,所以我发现如何设置你当前的Java版本的所有post都不起作用。 我已经尝试添加一个符号链接,使它看起来像1.8是在/System/Library...path,但它没有帮助。 /usr/libexec/java_home -V仍然只列出旧的java 1.6。

具有讽刺意味的是,系统偏好设置下的“Java”控制面板仅显示java 1.8!

为什么Oracle的安装程序不把它放在真正的地方? 我该如何解决这个问题?

不要依靠Oracle在Mac上正确安装Java。

使用自制软件 :

 brew update brew cask install java 

如果您想要在Mac上pipe理多个Java版本,请考虑使用jenv 。

更新:现在,Java 8不再是最新的版本,我们需要这样安装它:

 brew tap caskroom/versions brew cask install java8 

要获得所有旧版本java的列表: brew cask search java

我们使用brew cask,因为否则我们会使用Oracle GUI安装程序,该安装程序可能无法在您的Mac上正确安装Java。 (使用brew桶安装APP安装GUI应用程序;使用brew安装APP 。)Java不是GUI应用程序; 它不应该要求“木桶”,但至less甲骨文是一致的。

埃尔卡皮坦塞拉利昂高山

首先从terminal安装brew

 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

然后更新brew并安装Java

 $ brew update $ brew cask install java 

我开始真正喜欢在本地计算机上运行应用程序的选项是使用Docker。 您可以简单地在官方的JDK容器中运行您的应用程序 – 这意味着您不必担心在本地计算机上设置所有设置(或担心为不同的应用程序运行多个不同版本的JDK等)

虽然这可能不会帮助你解决当前的安装问题,但是这是一个解决scheme,这意味着你可以侧面解决与试图使Java在你的开发机器上正确运行有关的问题。

好处是:

  1. 无需在本地机器上设置任何Java版本(您只需在从Docker Hub中取出的容器中运行Java)
  2. 只需更改容器上的标签,就可以轻松切换到不同版本的Java。
  3. 项目依赖关系被安装在容器内 – 所以如果你搞砸了你的configuration,你可以简单地核实容器并重新开始。

一个非常简单的例子:

创build一个Dockerfile

 FROM java:8 COPY . /usr/src/myapp WORKDIR /usr/src/myapp 
  • 在这里,我们指定运行SDK的Java容器的版本8( java:8 – 使用Java 7,你可以指定: java:7
  • 我们将本地目录映射到容器内的目录: /usr/src/myapp

创build一个docker-compose.yml文件:

 version: "2" services: java: build: . volumes: - .:/usr/src/myapp 

现在,假设我们有这个Java文件:

HelloWorld.java

 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); } } 

所以我们有以下文件结构:

 . |_ Dockerfile |_ docker-compose.yml |_ HelloWorld.java 

你可以做各种Java的东西,如:

编译:

 docker-compose run --rm java javac HelloWorld.java 
  • 你应该注意到HelloWorld.class出现在你的当前目录中(这是因为我们已经将当前目录映射到了我们的代码所在的容器内的位置

跑:

 docker-compose run --rm java java HelloWorld 
  • 注意:第一次运行它会获取图像等。这将需要一段时间 – 它只发生在第一次
  • docker-compose run – 在容器中运行一个命令
  • -rm告诉-rm在命令完成运行后删除容器
  • java是这个命令将运行的服务/容器的名称(来自我们的docker-compose文件)
  • 该行的其余部分是在容器内运行的命令。

这是一个非常酷的方式处理运行不同版本的Java不同的应用程序,而不会让你的本地设置一塌糊涂:)。

这里有一个稍微复杂的例子,它有Maven和一个简单的Spring应用程序

免责声明:

  • 我没有真正尝试过像IntelliJ这样的IDE – 所以不能完全确定这方面的工作。 虽然它看起来像docker支持即将到来
  • 这是一个更复杂的示例,运行Spring Boot,Zuul和Docker的微服务

我刚刚在MBP上做了这个,不得不使用

 $ brew tap caskroom/versions $ brew cask install java8 

为了得到java8安装。

我有同样的问题要解决,因为我需要安装JDK8运行Android SDKpipe理器(因为它看起来不能很好地与JDK9)。 但是,我告诉你我是如何解决Mac(Sierra)上的所有问题的。

首先,你需要用木桶和珍宝 酿造

  1. 你可以在这里find一个有用的指南,“ 自制酒桶安装指南” 。 记得点击在terminal上运行的“caskroom / versions”: brew tap caskroom/versions
  2. 之后,安装jenv: brew install jenv
  3. brew cask install java8 (或java7java如果你想安装最新版本的jdk9)安装任何版本,
  4. 最后一步是configuration运行哪个版本(让jenvpipe理你的JAVA_HOME) jenv versions列出你机器上安装的所有版本,然后用jenv global [JDK_NAME_OF_LIST]激活你想要的jenv global [JDK_NAME_OF_LIST]

你可以在这个Github Gist brew-java-and-jenv.md上find其他有用的信息,在这个博客上在Mac上和Jenv网站 上安装多个JDK

我有使用Java 7和8的应用程序,并且必须始终来回。

我使用约翰写的脚本:

http://www.jayway.com/2014/01/15/how-to-switch-jdk-version-on-mac-os-x-maverick/

您现在可以在启动时进行设置,或者之后调用脚本。
安装JDK for Mac。

Java 7

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Java 8

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

使用酿造

 brew install Caskroom/cask/java 

最简单的方法 –

 1) brew cask install java (No need to install cask separately it comes with brew) 2) java -version java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) 

PS – 什么是酿酒桶? Homebrew-Cask扩展了Homebrew,解决了使用Homebrew安装应用程序后执行额外命令 – “安装,拖动这个图标…”的麻烦。

下面的步骤为我工作。

1)卸载所有的jdks

在terminal窗口中复制并粘贴下面的命令:

 sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin sudo rm -fr /Library/PreferencePanes/JavaControlPanel.prefpane 

2)安装APPLE jdk。

https://support.apple.com/kb/DL1572?locale=en_US

3)从Oracle下载最新的JDK并安装它,对我来说,它是JDK 1.82

http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

这就是所有的工作就像一个魅力。

我也有同样的问题。 但是,经过一些打击和审判,我能够解决这个问题。

尝试通过sudo rm删除1.6 sdk并重新启动您的mac。

再次下载.dmg文件。 很可能是您下载的.dmg安装程序可能已损坏。 再次安装。

安装后运行以下命令。 它为jdk提供path8. / usr / libexec / java_home -v 1.8

你也可以运行并看到jdk 8文件夹。 这些文件可能被隐藏。 ls -al / Library / Java / JavaVirtualMachines /