JVM是开源代码吗?

x7yiwoj4  于 2023-01-20  发布在  其他
关注(0)|答案(4)|浏览(434)

JVM是否开放源代码?如果不是,我怎样才能得到JVM的代码?

s1ag04yj

s1ag04yj1#

这完全取决于您使用的JVM。
如果使用OpenJDK JVM,则可以从here(或OpenJDK项目列表中的here)获取源代码。
如果使用Kaffe JVM,则可以从here获取源代码。
如果使用Sun JVM版本6或更高版本,则可以从here获取源代码。
如果您使用的是Sun JVM 6之前的版本,那么您通常可以通过学术许可证获得源代码。如果您使用的是IBM、Oracle、HP或其他JVM,那么源代码是不开放的。

2013年5月更新

Version6源代码仍然可以通过上面的链接访问,也可以通过this link访问,后者还包括一个方便的 * generalogy * 表,显示Oracle JDK和OpenJDK版本如何相互匹配。
此外,可以在here中找到最新版本的Java 7源代码。这也包括自GA以来Java 7版本的修复。
而且,毫不奇怪,Java 8源代码可以在here中找到。

kfgdxczn

kfgdxczn3#

JVM的核心部分在OpenJDK的hotspot模块中,但是您所需要的更可能在src.zip中。
这些类中的热点模块包括

  • 大多用C++编写
  • 并不总是很容易理解。这一点多年来有所改进,新代码往往更好,因为他们更清楚代码将有更广泛的消费。
  • 往往不是你要找的。

因此,如果你想知道JVM是如何运行的,那么最好查看一下常用的类。例如,即使是像lambda在运行时如何工作这样的低级内容,也大多在www.example.com中src.zipJVM中的内容不多。
大多数库的源代码都是在www.example.com文件中随JDK提供src.zip的。您的IDE将自动使用这些源代码。熟悉这些库中的类比摆弄JDK本身要好得多。

raogr8fs

raogr8fs4#

没有开源的jvm,即使有,你也不能绕过甲骨文愚蠢的类路径异常。简而言之,openjdk仍然依赖于$$驱动的方案,迫使你与商业vm竞争。与微软没有什么不同,你可以在C#提供的任何操作系统下使用C#。net库是免费的,但保持对VisualStudio的控制,这实际上迫使最终用户使用Windows作为选择的环境。

相关问题