简体   繁体   English

在Mac OS Mavericks上一起维护Java 6和Java 7

[英]Maintaining Java 6 and Java 7 together on Mac OS Mavericks

There have been various posts in several places about how hard it is it deal with Java on the mac. 关于在Mac上处理Java的难易程度,有好几处地方都有很多文章。 I had installed Java 7 some time ago on my mac with os mavericks, but then found that certain software ( like Open Office) can't run without Java 6, so after a lot of work I rolled that back. 一段时间之前,我已经在Mac上使用os mavericks安装了Java 7,但是随后发现某些软件(例如Open Office)无法没有Java 6才能运行,因此在进行了大量工作之后,我将其回退了。 Now I would like to use pydev with Eclipse. 现在,我想在Eclipse中使用pydev。 However this software requires Java 7. How do I maintain both versions of Java on the same machine? 但是,此软件需要Java7。如何在同一台计算机上维护Java的两个版本?

Thanks 谢谢

Maintaining different versions of Java on a Mac is straight forward. 在Mac上维护不同版本的Java很简单。

  • Java 6 and earlier were developed and maintained by Apple Java 6和更早版本由Apple开发和维护
  • Java 7 and later are developed and maintained by Oracle Java 7及更高版本由Oracle开发和维护

You already have Java 6 installed, presumably from somewhere like Java for Mac OS X 10.6 Update 17 . 您已经安装了Java 6,大概是从Mac OS X 10.6 Update 17的Java之类的地方安装的。

For all versions of Java after 6.x you must go to the Oracle download site , where both Java 7 and 8 can be found. 对于6.x之后的所有Java版本,必须访问Oracle下载站点 ,在该站点上可以找到Java 7和8。

Multiple versions of Java can coexist on a Mac. 在Mac上可以同时存在多个Java版本。 You can find out what you already have installed by using the 您可以使用来查找已经安装的内容

/usr/libexec/java_home -V / usr / libexec / java_home -V

command in Terminal. 终端中的命令。 For example: 例如:

[steve@Steves-MacBook-Pro-2 ~]$ /usr/libexec/java_home -V
Matching Java Virtual Machines (28):
    1.8.0, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
    1.7.0_51, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
    1.7.0_45, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
    1.7.0_40, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home
    1.7.0_25, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
    1.7.0_21, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
    1.7.0_17, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
    1.7.0_15, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_15.jdk/Contents/Home
    1.7.0_13, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home
    1.7.0_11, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home
    1.7.0_10, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
    1.7.0_07, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_07.jdk/Contents/Home
    1.7.0_06, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home
    1.7.0_04, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home
    1.6.0_65-b14-462, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Home
    1.6.0_65-b14-462, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Home
    1.6.0_51-b11-457, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_51-b11-457.jdk/Contents/Home
    1.6.0_51-b11-457, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_51-b11-457.jdk/Contents/Home
    1.6.0_45-b06-451, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_45-b06-451.jdk/Contents/Home
    1.6.0_45-b06-451, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_45-b06-451.jdk/Contents/Home
    1.6.0_35-b10-428, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_35-b10-428.jdk/Contents/Home
    1.6.0_35-b10-428, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_35-b10-428.jdk/Contents/Home
    1.6.0_33-b03-424, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_33-b03-424.jdk/Contents/Home
    1.6.0_33-b03-424, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_33-b03-424.jdk/Contents/Home
    1.6.0_32-b05-420, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_32-b05-420.jdk/Contents/Home
    1.6.0_32-b05-420, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_32-b05-420.jdk/Contents/Home
    1.6.0_31-b04-415, x86_64:   "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_31-b04-415.jdk/Contents/Home
    1.6.0_31-b04-415, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0_31-b04-415.jdk/Contents/Home

Double clickable applications on the Mac specify which versions of Java to use in their info.plist resources. Mac上的可双击应用程序在其info.plist资源中指定要使用的Java版本。

If you're running apps from the command line you use the same /usr/libexec/java_home command as above: 如果从命令行运行应用程序,则使用与上面相同的/ usr / libexec / java_home命令:

[steve@Steves-MacBook-Pro-2 ~]$ export JAVA_HOME=$(/usr/libexec/java_home -v1.8)
[steve@Steves-MacBook-Pro-2 ~]$ java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM