仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 608|回复: 8
打印 上一主题 下一主题

[学习教程] 发布一篇OpenJDK:构建JDK

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-18 11:08:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。
编者注:在这一期的开源之路中,作者和CafeAuLait的开创人ElliotteRustyHarold接受了今朝的JavaSE7开辟系列文章。由于OpenJDK项目的方针和流程已在第一期先容过,以是Elliotte将在此教程中间接先容JDK7的实践构建。
在此之前,假如OpenJDK项目有更新,我们会将其公布在每期“开源之路”的入手下手部分。最新的刊行版是b23,刊行日期是10月30日。此刊行版办理了一小部分缺点和功效请求,这些内容可详见其刊行申明,个中很多都与办理成绩相干,好比顶层README文件、空格清算和遗留"j2se"援用的移除。上一个版本b22办理的成绩对照多,集成了65个缺点修复和14个功效,个中包含将CORBA、JAXP和JAXWS支解到各自的事情区中,将SwingThreadPool创立交换为java.util.concurrent功效,撑持各类工夫区变动,和OpenJDKRenderingEngine插件的创立,这意味着“为OpenJDK供应了替换Ductus库的出发点。”
但怎样到达一切这些新方针呢?这恰是Elliotte将在在本文中论述的内容,他将先容怎样从源码构建JDK。
因为Sun的Java开辟工具包是自在软件(只需在交换的过程当中对一些小组件建模),因而我们无妨对经举行一些修正。不管您的热情在于优化、实行、言语计划、调试仍是文档,都有大批的事情必要您来做,都有大批的时机供应给各类妙技程度的开辟职员。在本系列的后续文章中,我将胪陈Java7或更高版本中大概呈现的各类API开辟。可是,要玩转这些API,您将必要浴血奋战,以是当即抛弃您的抢救箱,撕失落止血带,筹办流一些血吧!我们要入手下手构建JDK了。
体系需求
起首,构建JDK必要一个受撑持的操纵体系。这包含Linux、Solaris、WindowsXP和WindowsVista。不撑持MacOSX。Apple卖力将JDK迁徙至Mac中,但是,这常常滞后于潮水。可是,Mac用户可使用Parallels、VMWareFusion或BootCamp来运转Windows或Linux,并在个中构建JDK。切实其实,我撰写此文时用的就是这类办法,事先我电脑中的以太网卡在项目完成前两天不测出生了。但是,在Apple公布最新的JDK之前,我们仍旧没法在MacOS中运转Java7(或6)使用程序。这大概产生在今天,大概产生在来岁,也大概永久都不会产生。
其次,我们必要一个最新的Java6SDK。Java7不克不及经由过程Java5来编译。就我团体来讲,我在计划软件时不喜好太多的版本依附,这关于开源软件特别主要。可是,JDK只是在比来才开放源码,并且显现了公司IT的一些遗留立场:“我们能够把持每一个人的构建情况”。移除个中的一些依附是一项正在举行的并将消费数年的义务,可是,这个历程已获得了开端停顿。就在比来,Sun将其源码库从公用Teamware转移到了开源的Mercurial中。从关闭开辟形式切换到开摊开发形式是一项困难的义务,但终极了局是更壮大、更天真、更强健的代码库。
第三,我们必要一个C编译器。个中一些JDK是用原生代码编写的。它们不成能都是纯Java编写的。关于Linux,我们必要利用gcc4。结于Windows,必要利用MicrosoftVisualStudio.NET。关于Solaris,必要利用SunStudio11。
在Linux中,大概还必要安装或更新一些库。详细要安装哪些库,取决于您的刊行版和版本。您大概还必要为现有库安装一组C头文件。在本文中,我利用现有的Ubuntu7.10GutsyGibbon刊行版。年夜多半其他公道流畅的刊行版应当也能事情。假如您发明有一些刊行版没法事情,无妨找出其缘故原由并纪录缺点。
最初,在Windows中,您能够在NTFS文件体系长进行构建。您不克不及在FAT-32上构建JDK。您还必要安装Cygwin,由于在Windows上构建的JDK是Windows和Unix有用工具的奇怪夹杂物。
猎取源码
约莫每隔一个月,Sun会在OpenJDK源码公布页面上公布一组完全的JDK源码。上面列出了几种分歧的包:
OpenJDK源码JDK7约莫95%的次要源码。平台的二进制插件Sun实践其实不具有JDK中的一切代码,而且他们没法从头注册他们不具有的代码。相反,一些代码段必需以闭源二进制软件包来供应。您将必要为您的平台下载个中一些代码。Linux、Solaris和Windows在32位和64位版本中都受撑持。Jtreg测试工具二进制软件包下载代码的测试框架。您不用真正利用测试框架来构建或修正代码,可是不管怎样您都应当把握它。OpenJDK模块项目这包含Java7的新模块体系。(我将在本系列的后续文章中先容。)终极,此项目将汇总到JDK中,但如今您其实不当即必要它。
由于这些项目所占空间在120MB以上,下载服务器的速率大概不是一向都出格快,以是要想全体下载大概必要一段工夫。开源的一个优点就是不必单击经由过程使人厌恶的利用允许。从一般的URL中能够下载任何开源软件。这使得curl、wget等相似工具的利用加倍简单。设置批处置功课来猎取这些工具,然后您就能够安闲地喝一杯咖啡。现实上,无点击还使一般扫瞄器的利用加倍简单。点击经由过程注册的体例应当能够取销了。点击经由过程注册只是使状师加倍劳碌,除状师谁还必要这些工具?
jars@jars-desktop:~/openjdk$wget
 http://www.java.net/download/openjdk/jdk7/promoted/b23/openjdk-7-ea-src-b23-30_oct_2007.zip
--18:02:02-- 
http://www.java.net/download/openjdk/jdk7/promoted/b23/openjdk-7-ea-src-b23-30_oct_2007.zip
     =>`openjdk-7-ea-src-b23-30_oct_2007.zip
Resolvingwww.java.net...64.125.132.37,64.125.132.39
Connectingtowww.java.net|64.125.132.37|:80...connected.
HTTPrequestsent,awaitingresponse...301MovedPermanently
Location:
 http://download.java.net/openjdk/jdk7/promoted/b23/openjdk-7-ea-src-b23-30_oct_2007.zip
[following]
--18:02:02--
 http://download.java.net/openjdk/jdk7/promoted/b23/openjdk-7-ea-src-b23-30_oct_2007.zip
     =>`openjdk-7-ea-src-b23-30_oct_2007.zip
Resolvingdownload.java.net...72.5.124.114
Connectingtodownload.java.net|72.5.124.114|:80...connected.
HTTPrequestsent,awaitingresponse...200OK
Length:84,617,174(81M)[application/zip]
44%[===============>      ]37,717,212  55.36K/s  ETA12:19
如今,我们只必要前两个前提:OpenJDK源码和二进制插件。可是,未来您大概还必要其他两个前提。
<p>
那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net比java好。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-27 08:51:08 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
精灵巫婆 该用户已被删除
7#
发表于 2015-3-19 05:54:07 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
小魔女 该用户已被删除
6#
发表于 2015-3-11 18:08:11 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
透明 该用户已被删除
5#
发表于 2015-3-4 09:16:26 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
简单生活 该用户已被删除
地板
发表于 2015-2-14 17:52:19 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
若相依 该用户已被删除
板凳
发表于 2015-2-6 00:54:26 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
莫相离 该用户已被删除
沙发
发表于 2015-1-29 12:38:14 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
深爱那片海 该用户已被删除
楼主
发表于 2015-1-29 11:25:00 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 02:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表