mountain_OS X Mountain Lion上的多个Java版本

mountain

在Mountain Lion之前,Java被捆绑在OS X中。似乎在升级期间,我在计算机上安装的Java 6版本被删除了。
显然,在升级过程中卸载Java的原因是Java运行时存在的安全问题。通过这种方式,您不得不安装可解决此安全问题的最新版本。

所以我去了/ Applications / Utilities /打开一个终端并执行以下命令:
java -version ==>“没有Java运行时……”
出现一个提示您安装Java的窗口。单击“安装”并获取最新版本。我已经安装了它,但是就在我从Oracle下载并安装了JDK SE 7之后。

安装后,打开Java首选项(Launchapad / Others),您将看到:

现在我知道我有两个Java版本,但我正在使用哪个版本?

$ java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)

那么,如果我想使用Oracle的JDK SE 7怎么办?
然后,我只需将Java Preferences窗口中的Java SE 7拖到列表中的第一个位置。

这次 :

$ java -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b06)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)

我对自己说,让我们了解更多有关如何在OS X上安装Java的信息,因此我进行了更多研究。

有一些非常有用的命令: whereis和which和ls -l 。

whereis java ==> /usr/bin/java
ls -l /usr/bin/java ==> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

当我看到此消息时,我有点好奇,所以我列出了Versions目录:

cd /System/Library/Frameworks/JavaVM.framework/Versions
ls ==>
1.4 1.5 1.6 A CurrentJDK
1.4.2 1.5.0 1.6.0 Current

现在,为什么我的计算机上装有Java的旧版本? 所以我问了Ask Different
http://apple.stackexchange.com/questions/57986/multiple-java-versions-support-on-os-x-and-java-home-location

$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.8.1
BuildVersion: 12B19
$ ls -l /System/Library/Frameworks/JavaVM.framework/Versions
total 64
lrwxr-xr-x  1 root  wheel   10 Sep 16 15:55 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 Sep 16 15:55 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 Sep 16 15:55 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 Sep 16 15:55 1.5.0 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 Sep 16 15:55 1.6 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 Sep 16 15:55 1.6.0 -> CurrentJDK
drwxr-xr-x  7 root  wheel  238 Sep 16 16:08 A
lrwxr-xr-x  1 root  wheel    1 Sep 16 15:55 Current -> A
lrwxr-xr-x  1 root  wheel   59 Sep 16 15:55 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

似乎所有旧版本都链接到AppleJ版本的CurrentJDK版本,但A和Current链接到AI除外,对此问题有所了解。对我来说A就像一个临时变量。 如果在Java首选项中将Apple A的Java 6设置在第一个位置,而将Oracle A的Java SE 7放在第一个位置,则将Apple的Java 6指向此版本。当前指向A。

/java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
./java -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b06)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)

因此,这意味着在当前目录中,它将指向在Java首选项中找到的第一个Java版本。
一个非常有趣的事情是以下信息

lrwxr-xr-x  1 root  wheel   59 Sep 16 15:55 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

这意味着来自Apple的Java实际上安装在这里:“ / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk /”
Java SE 7呢? 我可以搜索文件系统来查看,但是找到了一种更简单的方法:

如果在Java Preferences中的第一个位置是Java SE 7 ==>

$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home

如果在Java Preferences中的第一个位置是Java SE 6(系统)==>

$ /usr/libexec/java_home
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

因此,Mountain Lion(OSX)上的Java更有可能安装在以下位置之一:

  • /系统/库/ Java / JavaVirtualMachines
  • /图书馆/ Java / JavaVirtualMachines
  • 〜/库/ Java / JavaVirtualMachines

/System/Library/Frameworks/JavaVM.framework/Versions呢?
似乎链接到所谓的“ Java桥 ”。这里似乎是OSX安装上Java的本机部分。

参考: Java Code Samples博客上的JCG合作伙伴 Cristian Chiovari提供了OS X Mountain Lion上Java的多个版本 。


翻译自: https://www.javacodegeeks.com/2012/09/multiple-versions-of-java-on-os-x.html

mountain

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python手机自动化测试脚本语言_Python+Appium实现APP自动化测试

一、环境准备 1.脚本语言:Python3.x IDE:安装Pycharm 2.安装Java JDK 、Android SDK 3.adb环境,path添加E:\Software\Android_SDK\platform-tools 4.安装Appium for windows,官网地址 http://appium.io/ ​ 点击下载按钮会到GitHu…

Win7无线网络和有线网络网络负载选择

最近在看如何让有线网络和无线网络实现对接。win7网络可以同时连接两个网卡无线和有线,在同时间上连接两个网络用 的是哪个网络,用是哪个流量(可以用currPorts软件来查看电脑用是哪个网络的流量),哪个网络是闲置网络。 同时可以…

怎么查看linux服务器有cpu

cat /proc/cpuinfo中的信息processor 逻辑处理器的id。physical id 物理封装的处理器的id。core id 每个核心的id。cpu cores 位于相同物理封装的处理器中的内核数量。siblings 位于相同物理封装的处理器中的逻辑处理器的数量。1 查看物理CPU的个数#cat /proc/cpuinfo |grep &q…

python条件输出_python基础(二)条件判断、循环、格式化输出

继续上一篇,今天主要总结一下条件判断、循环、格式化输出 一.条件判断 python中条件判断使用if else来判断,多分支的话使用if elif ... else,也就是如果怎么怎么样就怎么怎么样,否则就怎么怎么这样,格式如下: score i…

拼图项目的诅咒:为什么Java 9一遍又一遍地延迟?

JDK 9发行日期推迟到2017年7月 距JDK 9发行不到200天,它又被推迟了 。 新的发布日期已更新为2017年7月,比之前推迟的日期晚了四个月。 推迟日期 9月13日,Oracle Java平台小组的首席架构师Mark Reinhold发表了他的建议,推迟了JDK…

linux下安装maven

1、下载maven安装包 wget http://219.238.7.73/files/211300000CAE3924/mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz 2、解压缩maven tar -zxvf apache-maven-3.5.4-bin.tar.gz 3、在/etc/profile文件中配置maven环境变量 #maven …

小技巧教你解决此windows副本不是正版的问题

最近有很多朋友都说,在安装完win7系统之后,却出现了“此windows副本不是正版” 的问题,我们该怎么解决这个问题呢?今天就教大家如何解决此windows副本不是正版的问题。 点击左下角的“开始”按钮,然后在搜索框中输入“…

NGINX介绍及参数

Nginx("engine x")是一个IMAP/POP3/SMTP代理服务器,也是一个高性能的 HTTP 和 反向代理服务器,但现在大多数情况下都是用来做静态web服务器和反向代理服务器,在作为反向代理服务器的时候,Nginx可以对后端的real server做负载均衡,基于应用层的负载均衡,但是他仅支持一…

FinalTest 基于web的登录口令修改设计

本次任务主要实现登录口令的修改,当用户修改了登录名和登陆密码以后,下一次登录将会使用新的登录名和登录密码。 FT.1 页面设计 登录的页面主要使用了原来的pass.htm文件,主要是因为我自己做了一个相差不大的界面,如下图所示&…

python脚本编程100例_python100例,python经典例题

肯定有用,练习就是实战。对于刚学习编程的同学,我觉得跟着例子学习,会有很大的进步。至少让你熟悉语法和理解编程的一些技巧。当你能熟练掌握python编程的方法后,你需要学习一些第三方库,python的第三方库很强大。具体…

windows Server 2003 尝试安装.NET Framework 4 失败

在windows Server 2003 尝试安装.NET Framework 4 失败 提示出“产生阻滞问题”,这个是系统没有安装WIC产生的。 到https://www.microsoft.com/zh-cn/download/details.aspx?id17718 下载WIC后进行安装,安装WIC后能正常安装.NET Framework 4。

java 在线编辑器_最好的Markdown开源在线编辑器,没有之一!

点击上方蓝色字体,选择“设为星标”回复”666“获取面试宝典Editor.md 是一款开源的、可嵌入的 Markdown 在线编辑器(组件),基于 CodeMirror、jQuery 和 Marked 构建。主要特性支持“标准” Markdown / CommonMark 和 Github 风格的语法,也可…

log4j 多线程死锁问题_Log4j线程死锁–案例研究

log4j 多线程死锁问题此案例研究描述了影响Weblogic Portal 10.0生产环境的Apache Log4j线程争用问题的完整根本原因分析和解决方案。 它还将展示在开发和支持Java EE应用程序时适当的Java类加载器知识的重要性。 本文也是您提高线程转储分析技能和了解线程竞争条件的另一个机会…

谜题6:多重转型

转型被用来将一个数值从一种类型转换到另一种类型。下面的程序连续使用了三个转型。那么它到底会打印出什么呢? public class Multicast{public static void main (String[] args){ System.out.println((int)(char)(byte) -1); } } 无论你怎样分析这个程序&#xf…

nginx 简介篇

Nginx(发音为“engine x”)是一款由俄罗斯软件工程师Igor Sysoev写的开源的web服务器。自从2004年发布以来nginx一直关注于高性能、高并发、低内存的使用,另外还有一些特色的Web服务器功能,如负载均衡、缓存、访问和带宽控制以及能够有效的与各种应用集成这些特点使…

MySQl Got a packet bigger than ' max_allowed_packet' bytes

在my.ini中最后增加一行max_allowed_packet16M即可(根据实际情况设置)。

防止缓存爆炸的快速提示

在很多情况下,您都可以从应用程序中的常用对象缓存中受益,特别是在面向Web和微服务的环境中。 您可以在Java中执行的最简单的缓存类型可能是引入一个私有HashMap,在计算对象之前先对其进行查询,以确保您不会重复执行此操作。 这是…

设置过mysql远程连接后仍然无法进行远程连接 (mysql mysql报错2003 can't connect)

1、在控制面板上-〉系统和安全-》 window是防火墙-》打开或关闭Windows防火墙-》关闭Windows防火墙(不推荐),这样mysql就可以进行远程连接但是有一个问题就是不安全。所以采取以下的方法。 2、 解决方法: (1.控制面板 打开防火墙,在进入规则中新建一个规则. (2. 选…

go 二进制程序守护_图解 Go 程序是怎样跑起来的

Go语言中文网,致力于每日分享编码、开源等知识,欢迎关注我,会有意想不到的收获!刚开始写这篇文章的时候,目标非常大,想要探索 Go 程序的一生:编码、编译、汇编、链接、运行、退出。它的每一步具…

nginx 配置从零开始

作为一个 nginx 的初学者记录一下从零起步的点滴。 基本概念 Nginx 最常的用途是提供反向代理服务,那么什么反向代理呢?正向代理相信很多大陆同胞都在这片神奇的土地上用过了,原理大致如下图: 代理服务器作为客户端这边的中介接…