Java 9 {lib}中libjvm.so和libjvm.dylib的标准位置是什么

时间:2017-10-16 10:57:02

标签: java-native-interface java-9

我试图找出在使用my(C)程序嵌入Java 9时要传递给链接器的文件的标准化位置。即libjvm.so(Linux / Solaris)和libjvm.dylib(macOS)的“正确”路径。这样我的构建脚本等可以在未来安全。

Java 9改变了Java安装的布局(JEP 220),以使文件布局标准化,但我看到的所有文档正确描述了Linux和MacOS上的Java 9的Oracle和OpenJDK版本中的libjvm共享库。

那么,是否有更新的权威文档?

JEP 220(声称是“已发送”,作为{9}}的一部分,是Java 9的一部分)说:

  

Linux,macOS和Solaris上的lib目录包含运行时系统的动态链接本机库,就像今天一样。这些名为libjvm.so或libjvm.dylib的文件可能被嵌入运行时系统的程序链接。

(在几个相关的错误跟踪器问题和网络上重复了类似的描述。)

但该描述并未描述当前(最终)版本。相反,它们似乎都将动态​​库放在lib/server/中,而不是lib/

(OpenJDK,至少在Ubuntu上,与JSR 376: JavaTM Platform Module System中描述的布局有额外的偏差。)

请注意,我只对链接完整的JDK安装感兴趣,例如:从Oracle或OpenJDK获得。我不会构建自己的安装,也不会在我的应用程序中分发java运行时库的副本。

0 个答案:

没有答案