栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

了解Mac上的Oracle Java

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

了解Mac上的Oracle Java

Oracle的JVM仅安装在一个位置。你被误导了!

您已经注意到,中的Java命令

/usr/bin
是指向中二进制文件的符号链接
/System/Library/frameworks/JavaVM.framework/Versions/Current/Commands
。该目录中的二进制文件是存根应用程序,它们确定要使用的Java
VM
*,然后在该VM版本中执行相应的实际二进制文件。这就是为什么其中所有二进制文件的
/System/Library/frameworks/JavaVM.framework/Versions/Current/Commands
大小几乎相同的原因,尽管您希望它们实现的功能完全不同。

您可以使用来查看此操作

dtrace

mrowe@angara:~$ sudo dtrace -n 'syscall::posix_spawn:entry { trace(copyinstr(arg1)); }' -c "/usr/bin/java -version"dtrace: description 'syscall::posix_spawn:entry ' matched 1 probedtrace: pid 44727 has exitedCPU     ID         FUNCTION:NAME  8    619     posix_spawn:entry   /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java

给定的

dtrace
调用将打印出
posix_spawn
当被调用时的path参数
java-version
。在我的情况下,存根应用程序已在其中找到Apple的Java
1.6运行时,
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk
并正在调用该
java
命令版本。

存根二进制文件还有另一个好处:当它们检测到未安装Java VM时,将提示用户安装一个。

至于

CurrentJDK
符号链接,就我向后的兼容性而言,尽我所能告诉我,Apple是OS X上唯一的JVM来源。


*在确定应使用哪个Java VM时要考虑多种因素。

JAVA_HOME
如果已设置(尝试
JAVA_HOME=/tmp java
),则使用。如果
JAVA_HOME
未设置,则发现系统上所有虚拟机的列表。该
JAVA_VERSION
JAVA_ARCH
环境变量的使用,如果设置,虚拟机列表中筛选到一个特定的版本和支持的体系结构。然后,将结果列表按体系结构(最好是64位而不是32位)和版本(更新更好)进行排序,并返回最佳匹配。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449915.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号