`

自己编译JDK

阅读更多

注:还有问题,还没有成功,哪位能帮忙解答一下 -_-~|||

 

0、首先,要有耐心,相信会有够折腾的;如果你会提出“为什么要自己做编译JDK这样无聊的事情”这样的问题的话,还是别往下看了,浪费时间啊。

我是参照openjdk的这个文档(README-builds.html)来做的,附件传不上去我就不传了,openjdk里面有。

 

1、我是再Windows上面编译的,肯定比Linux下要麻烦一些,首先访问到 http://download.java.net/openjdk/jdk7/

下载openjdk-7-fcs-src-b147-27_jun_2011.zip

解压(这个版本不需要JDK Plug)。

 

2、下载Visual Studio 2010版本,安装。JDK就是用它来编译的。

 

3、安装Ant,1.7.1版本以上。

 

4、安装FreeType(http://www.freetype.org/download.html),是一个字体渲染库:

http://download.savannah.gnu.org/releases/freetype/

 

5、文档上说要安装InfoZIP(http://www.info-zip.org/),我没有下。

 

6、安装Cygwin(http://www.cygwin.com/),cygwin是一个在windows平台上运行的unix模拟环境,这样就可以在Windows上面执行sh脚本了,安装的时候至少要在可选包里面把ar、make、m4、cpio、gawk、file、zip、unzip、free、make这几个包勾上。

 

7、安装DirectX 9.0 SDK(http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21416)。

 

8、写一个脚本,专门用来配置环境变量的:

set ALT_BOOTDIR=D:\junction\JDK\jdk1.6.0
set ALT_JDK_IMPORT_PATH=%ALT_BOOTDIR%
set ANT_HOME=D:\Software Development Environment\Build\apache-ant-1.8.2
set ALT_MSVCRNN_DLL_PATH=C:\WINDOWS\system32
set ALT_DXSDK_PATH=D:\Software Development Environment\Microsoft DirectX 9.0 SDK (Summer 2004)\
set ALT_FREETYPE_HEADERS_PATH=D:\Software Development Environment\Font\freetype-2.4.6\include
set INCLUDE=D:\junction\VS\VC\lib;%INCLUDE%
set LIB=D:\junction\VS\VC\lib;%LIB%
set LIBPATH=%LIB%
set PATH=D:\junction\VS\VC\bin;D:\junction\VS\Common7\IDE;D:\junction\Cygwin\bin;%PATH%
set BUILD_CORBA=false
set JAVA_HOME=

 说明几个事情:

(1)JAVA_HOME环境变量需要设为空,这样就取消了这个环境变量。

(2)BUILD_CORBA设为false,是因为我的系统是中文版的,Java IDL会因为生成了中文注释而出错。

(3)像JDK、Cygwin等路径最好不要有中文和空格(比如出现了空格后面make的时候会警告),可我已经安装到带有空格的路径下了,怎么办?我想了个办法,下载了一个M$的junction工具:http://technet.microsoft.com/zh-cn/sysinternals/bb896768.aspx,它可以创建一个类似于文件夹映像,很像Linux下面的符号链接,这样新创建的映像路径设为没有空格的英文路径即可。

 

9、到openjdk目录下,执行:make sainty,这个命令可以检查错误,报错:

Compiler-msvc.gmk:117: *** COMPILER_VERSION cannot be empty here. Stop.

网上找到一篇文章,说明了这个情况:http://www.java.net/node/659597

不过我直接编辑这个gmk文件,直接把COMPILER_VERSION写入,绕过这个问题。

 

10、继续执行make sainty,接着报错:

sanity-rules.gmk:64: *** multiple target patterns.  Stop.

网上找到的文章这样说:(http://mail.openjdk.java.net/pipermail/build-dev/2007-July/000116.html) 

> Download a patched cygwin make binary from
> http://www.cmake.org/files/cygwin/make.exe

我就下了并且替换了,接着继续报错,说找不到cygintl-3.dll,无奈,我去下载了cygintl-3.dll,接着报:

make.exe - 损坏的图像
---------------------------
应用程序或 DLL D:\junction\Cygwin\bin\cygintl-3.dll 为无效的 Windows 映像。请再检测一遍您的安装盘。 

汗,暂时不搞了。。。

 

哪位大侠了解情况帮忙指点一下。 

 

 

 

0
0
分享到:
评论
2 楼 wq611403 2012-02-07  
最后一步安装下cygwin 的libintl3 就好了。具体步骤 setup.exe(cygwin) 在select packages的时候search libintl3, 然后装一下应该就解决这个问题了。
1 楼 xing_kenny 2011-10-23  
用 http://www.cmake.org/files/cygwin/make.exe-cygwin1.7 试一下,
参考 http://blog.csdn.net/intimater/article/details/6136909
但是我也没走到最后
真是太麻烦啦!

相关推荐

    ubuntu 18.04编译JDK 12源码包

    在本文中,我们将深入探讨如何在Ubuntu 18.04操作系统上编译JDK 12的源码包。首先,我们需要理解JDK(Java Development Kit)的重要性,它是开发和运行Java应用程序的基础。JDK包含了Java编译器、调试器、JRE(Java ...

    jdk1.5 jdk1.6 反编译 工具

    标题中的“jdk1.5 jdk1.6 反编译 工具”指的是用于对Java字节码进行反编译的软件,这类工具能够将Java的.class文件转换回可读的.java源代码形式,这对于理解和学习已有的Java类库或者进行逆向工程非常有帮助。...

    自己重新编译的jdk源码jar包

    对于想了解JDK源码的朋友来说,通过调试JDK源码来学习是一个常用的方法。但是默认的情况下eclipse是...二是自己去编译jdk源码,如何自己编译可以参看我的博客:http://blog.csdn.net/ftp_2014/article/details/51087603

    openjdk 8 编译JDK结果

    openjdk 8 编译JDK结果,自己编译,可以代替oracle jdk使用。具体编译方法也在我的共享中上传,希望对你有帮助。

    jdk-6u45-linux-x64.bin+gcc-linaro-arm.tar.xz

    友善之臂搭建NanoPi M1 Plus(全志H3 arm开发板)安卓编译环境过程中所需的jdk和gcc,当然其他需要这两个文件也可以用。如果你正好也在编译M1,可以看编译教程:codbo.cn/blog-231.html

    jdk反编译工具

    jdk反编译工具jdk反编译工具jdk反编译工具jdk反编译工具jdk反编译工具jdk反编译工具

    java jdk1.7源码包,用于centos7使用jdk1.7编译openjdk1.8的 1.7版本

    Java JDK 1.7源码包是用于在CentOS 7操作系统上进行OpenJDK 1.8编译的重要资源。这个源码包包含了Java Development Kit的1.7版本,通常被称为JDK 7,它是Oracle公司发布的Java编程语言和Java平台标准版的一个实现。...

    jdk1.8class反编译

    Java开发工具包(JDK)是Java编程语言的核心组件,其中包含了用于编译、调试和运行Java应用程序的各种工具。在 JDK 1.8 版本中,开发者们有时需要查看已编译的`.class`文件的源代码,以便理解其内部工作原理或进行...

    反编译工具支持jdk1.7及以下反编译

    非常好用的反编译工具jd-gui,反编译工具支持jdk1.7及以下反编译,反编译工具支持jdk1.7及以下反编译

    编译好的JDk

    想要一探JDK内部的实现机制,最便捷的路径之一就是自己编译一套JDK,通过阅读和跟踪调试JDK源码去了解Java技术体系的原理,虽然门槛高一点,但肯定比阅读各种书籍,文章,博客更在贴切一点,另外,JDK的很多方法都是...

    编译好的 Hotspot 和jdk8

    深入理解Java虚拟机中右编译JDK的附录,自己结合自己的环境(win 7 64)编译的openjdk的hotspot和jdk8

    java反编译工具jad 1.5.8g(可以反编译jdk1.5,1.6)

    java反编译工具jad 1.5.8g支持 jdk1.5,jdk1.6。 说明很多 记住一个万能的命令基本就够用了。 jad -sjava -r -8 -o **\*.class <br>--------------- This is README file for Jad - the fast Java ...

    luyten-0.5.3可以反编译jdk1.8代码

    Luyten可以反编译jdk1.8的java代码, 以前用jd-gui,感觉挺好用的。最近项目用了jdk1.8,jd-gui就不好用了,总是显示// INTERNAL ERROR //

    jdk反编译软件

    标题提到的"jdk反编译软件"正是针对这个需求而设计的,它可以帮助开发者查看Java类文件的源代码,即使原始的.java文件已经丢失或不可用。 首先,我们需要了解什么是反编译。反编译是将已编译的机器码或者字节码转换...

    FrontEnd Plus V1.04(最新版,支持反编译jdk1.6)

    FrontEnd Plus V1.04 (最新版,支持反编译jdk1.6) --(内含jad) 著名的java反编译工具 jad的可视化图形工具 ======================================= 今天本想在CSDN下载个反编译工具FrontEnd ....

    最新java反编译工具jad 支持jdk1.6

    "最新java反编译工具jad 支持jdk1.6"表明这个版本的JAD是为Java Development Kit 1.6更新设计的,确保与这个版本的JDK兼容。 JDK 1.6,也被称为Java SE 6,是Oracle公司发布的Java平台标准版的一个重要版本。它包含...

    java jdk 反编译工具

    Java JDK反编译工具是Java开发者在特定情况下需要用到的重要辅助工具。它主要用于将已经编译好的`.class`字节码文件转换回可读性更强的`.java`源代码文件。这种需求通常出现在需要查看或理解第三方库的源码,但没有...

    android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6

    ### Android 2.2 源码编译指南:Ubuntu 10.04 (X86) + Android 2.2 + JDK 1.6 #### 一、环境搭建 在进行Android 2.2源码编译之前,我们需要准备一个合适的开发环境。根据题目中的描述,本指南将详细介绍如何在...

Global site tag (gtag.js) - Google Analytics