openjdk源码分析

openjdk而jdk推荐的openjdk是jdk的开源代码版本 , 以GPL协议的形式发布 。JDK7的时候,openjdk已经成为jdk7的主要开发,sunjdk7是在openjdk7的基础上发布的,它的原代码大部分都是一样的,只有少部分被替换了,JDK7的时候,openjdk已经成为jdk7的主要开发,sunjdk7是在openjdk7的基础上发布的,它的原代码大部分都是一样的,只有少部分被替换了 。
1、如何用Mac完美编译OpenJDK7前段时间为了研究JVM , 去OpenJDK6编译了一下 。因为声卡驱动少,也没找到解决的方法,结果总是不成功,就放弃了 。但是最近调试jdk 源码的时候发现没有调试信息,感觉好辛苦 。正好有个朋友成功编译了OpenJDK7 , 我就去下一个试编译了 。虽然在CentOS下成功了,但是在Mac下用不了 , 所以又花了点时间在Mac下做了一遍 。
【openjdk源码分析】1.选择OSX版本非常重要 。目前我的Mac版本是10.10 。一开始没想那么多 。配置好必要的信息后,我开始编译,结果错误百出 。简单看了一下,发现编译C文件时参数有误,于是检查了一下,发现LLVM版本太新,不能兼容较低版本的一些编译参数 。详情请见本文第8点 。我也按照上面的修改了代码,还是不会编译 。这时,我想到了一个很简单的办法 。既然高配的不行,我就装个低配的 。
2、最新的JDK和openJDK有什么区别关于JDK和OpenJDK的区别,不同的授权协议是:openjdk采用GPLV2协议 , 而JDK是JRL发布的 。虽然两个协议都是开源的,但是使用上的区别在于GPLV2允许商业使用,而JRL只允许个人研究使用 。Openjdk不包含部署功能:部署的功能有:BrowserPlugin、JavaWebStart、Java控制面板,这些都是OpenJDK中没有的 。
3、如何交叉编译 openjdk使之能在arm-Linux中运行这里需要注意的是,所谓其实包含两个概念:架构和OperatingSystem 。同一架构可以运行不同的操作系统;同样,相同的操作系统可以运行在不同的架构上 。直接下载OpenJDK8 源码肯定会失败 。
4、如何添加 openjdk源文件到eclipsewindow > conference > Java > build path > class path变量,可以看到JRE_SRC变量为空,并标记为不可更改 。其实jdk 源码在安装的时候是放在jdk所在的目录里的,但是eclipse用了一个没有源码的jre , 导致找不到对应的源码 。点击窗口>会议> Java > InstalledJRes >搜索找到JDK的位置 。
5、 openjdkjavadoc在哪看看官方文件就知道在哪里了 。请参考OpenJDK8u最新版本javadoc的实现:不过需要注意的是,OpenJDK的javadoc(也传递给了OracleJDK)是在javac的基础上实现的 。而javac的源码在隔壁另一个目录:JDK 8u/JDK 8u/lang tools:2 baeb 96 fa 198/src/share/classes/com/sun/tools/javac/其中javac的解析器在com.sun.tools.javac.tree包下 。
6、 openjdk和jdk推荐哪个 openjdk是jdk的开源代码版本,以GPL协议的形式发布 。JDK7的时候 , openjdk已经成为jdk7的主要开发 。sunjdk7是在openjdk7的基础上发布的,它的原代码大部分都是一样的,只有少部分被替换了 。使用JRL(JavaResearchLicense)发布 。任何使用过LINUX的人都应该知道 , 在大多数LINUX发行版中,如果JDK是内置的或通过软件源安装的,就会安装openjdk
历史原因是openjdk是jdk的开源版本,以GPL协议的形式发布 。JDK7的时候,openjdk已经成为jdk7的主要开发 。sunjdk7是在openjdk7的基础上发布的,它的原代码大部分都是一样的,只有少部分被替换了 。使用JRL(JavaResearchLicense)发布 。
7、 openjdk和jdk的区别任何使用过LINUX的人都应该知道,在大多数LINUX发行版中,如果JDK是内置的或者是通过软件源安装的,就会安装openjdk 。那么openjdk是什么 , 它和sunjdk有什么关系和区别呢?历史原因是openjdk是jdk的开源版本 , 以GPL协议的形式发布 。JDK7的时候,openjdk已经成为jdk7的主要开发 。sunjdk7是在openjdk7的基础上发布的,它的原代码大部分都是一样的,只有少部分被替换了 。
至于openjdk6,就比较复杂了 。第一,openjdk6是jdk7的一个分支 , 尽可能去掉了JavaSE7的新特性,使其尽可能符合Java6的标准,JDK和OpenJDK的区别可以总结为:授权协议的区别:openjdk GPLV2协议被采用,而JDK是JRL发布的 。

    推荐阅读