Windows Open JDK17 配置方法Word文档格式.docx

上传人:b****6 文档编号:21563354 上传时间:2023-01-31 格式:DOCX 页数:9 大小:131.78KB
下载 相关 举报
Windows Open JDK17 配置方法Word文档格式.docx_第1页
第1页 / 共9页
Windows Open JDK17 配置方法Word文档格式.docx_第2页
第2页 / 共9页
Windows Open JDK17 配置方法Word文档格式.docx_第3页
第3页 / 共9页
Windows Open JDK17 配置方法Word文档格式.docx_第4页
第4页 / 共9页
Windows Open JDK17 配置方法Word文档格式.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

Windows Open JDK17 配置方法Word文档格式.docx

《Windows Open JDK17 配置方法Word文档格式.docx》由会员分享,可在线阅读,更多相关《Windows Open JDK17 配置方法Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。

Windows Open JDK17 配置方法Word文档格式.docx

编译至少需要512MB的内存和600MB的磁盘空间。

如果读者耐心很好的话,512MB的内存基本上也可以凑合使用,不过600MB的磁盘空间仅仅是指存放OpenJDK源码和相关依赖项的空间,要完成编译,600MB肯定是无论如何都不够的,这次实战中所下载的工具、依赖项、源码,全部安装、解压完成最少(最少是指只下载C++编译器,不下载VS的IDE)需要超过1GB的空间。

  对系统的最后一点要求就是所有的文件,包括源码和依赖项目,都不要放在包含中文或空格的目录里面,这样做不是一定不可以,只是这样会为后续建立CYGWIN环境带来很多额外的工作,这是由于Linux和Windows的磁盘路径差别所导致的,我们也没有必要自己给自己找麻烦。

1.5.3构建编译环境 

  准备编译环境的第一步是去安装一个CYGWIN 

这是一个在Windows平台下模拟Linux运行环境的软件,提供了一系列的Linux命令支持。

需要CYGWIN的原因是在编译中要使用GNUMake来执行Makefile文件(C/C++程序员肯定很熟悉,如果只使用Java,那把这个东西当做C++版本的ANT看待就可以了)。

安装CYGWIN时不能直接默认安装,因为表1-2中所示的工具都不会进行默认安装,但又是编译过程中需要的,因此要在图1-6的安装界面中进行手工选择。

  表1-2需要手工选择安装的CYGWIN工具 

文件名

分类

描述

ar.exe

Devel

binutils

TheGNUassembler,linkerandbinaryutilities

make.exe

make

TheGNUversionofthe'

make'

utilitybuiltforCYGWIN.

m4.exe

Interpreters

m4

GNUimplementationofthetraditionalUnixmacroprocessor

cpio.exe

Utils

cpio

Aprogramtomanagearchivesoffiles

gawk.exe

awk

Pattern-directedscanningandprocessinglanguage

file.exe

file

Determinesfiletypeusing'

magic'

numbers

zip.exe

Archive

zip

Packageandcompress(archive)files

unzip.exe

unzip

ExtractcompressedfilesinaZIParchive

free.exe

System

procps

Displayamountoffreeandusedmemoryinthesystem

  CYGWIN安装时的定制包选择界面如图1-6所示:

图1-6CYGWIN安装界面

  建立编译环境的第二步是安装编译器。

JDK中最核心的代码(Java虚拟机及JDK中Native方法的实现等)是使用C++语言及少量的C语言编写的,官方文档中说他们的内部开发环境是在MicrosoftVisualStudioC++2003(VS2003)中进行编译,同时也在MicrosoftVisualStudioC++2010(VS2010)中测试过,所以最好只选择这两个编译器之一进行编译。

如果选择VS2010,那么在编译器之中已经包含了WindowsSDKv7.0a,否则可能还要自己去下载这个SDK,并且更新PlatformSDK目录。

由于笔者没有购买VisualStudio2010的IDE,所以仅仅下载了VS2010Express中提取出来的C++编译器,这部分是免费的,但单独安装好编译器比较麻烦。

建议读者选择使用整套VisualStudioC++2010或VisualStudioC++2010Express版进行编译。

  需要特别注意的一点:

CYGWIN和VS2010安装之后都会在操作系统的PATH环境变量中写入自己的bin目录路径,必须检查并保证VS2010的bin目录一定要在CYGWIN的bin目录之前,因为这两个软件的bin目录之中各自都有个连接器“link.exe”,但是只有VS2010中的连接器可以完成OpenJDK的编译。

  准备JDK编译环境的第三步就是下载一个已经编译好了的JDK。

这听起来也许有点滑稽——要用鸡蛋孵小鸡还真得必须先养一只母鸡呀?

但仔细想想其实这个步骤很合理:

因为JDK包含的各个部分(Hotspot、JDKAPI、JAXWS、JAXP……)有的是使用C++编写的,而更多的代码则是使用Java自身实现的,因此编译这些Java代码需要用到一个可用的JDK,官方称这个JDK为“BootstrapJDK”。

而编译OpenJDK7的话,BootstrapJDK必须使用JDK6Update14或之后的版本,笔者选用的是JDK6Update21。

  最后一个步骤是下载一个ApacheANT,JDK中Java代码部分都是使用ANT脚本进行编译的,ANT版本要求在1.6.5以上,这部分是Java的基础知识,对本书的读者来说应该没有难度,笔者就不再详述。

1.5.4准备依赖项 

  前面说过,OpenJDK中开放的源码并没有达到100%,还有极少量的无法开源的产权代码存在。

OpenJDK承诺日后将逐步使用开源实现来替换掉这部分产权代码,但至少在今天,编译JDK还需要这部分闭源包,官方称之为“JDKPlug”(注1),它们从前面的SourceReleases页面就可以下载到。

在Windows平台的JDKPlug是以Jar包的形式提供的,通过下面这条命令可以安装它:

Console代码 

1.java 

–jar 

jdk-7-ea-plug-b121-windows-i586-09_dec_2010.jar 

  运行后将会显示如图1-7的协议,点击ACCEPT接受协议,然后把Plug安装到指定目录即可。

安装完毕后建立一个环境变量“ALT_BINARY_PLUGS_PATH”,变量值为此JDKPlug的安装路径,后面编译程序时需要用到它。

图1-7JDKPlug安装协议

  除了要用到JDKPlug外,编译时还需要引用JDK的运行时包,这个是编译JDK中用Java代码编写的那部分所需要的,如果仅仅是想编译一个HotSpot虚拟机的话则可以不用。

官方文档把这部分称之为“OptionalImportJDK”,可以直接使用前面BootstrapJDK的运行时包,我们需要建立一个名为“ALT_JDK_IMPORT_PATH”的环境变量指向JDK的安装目录。

  第三步是安装一个大于2.3版的FreeType 

,这是一个免费的字体渲染库,JDK的Swing部分和JConsole这类工具要使用到它。

安装好后建立两个环境变量“ALT_FREETYPE_LIB_PATH”和“ALT_FREETYPE_HEADERS_PATH”,分别指向FreeType安装目录下的bin目录和include目录。

另外还有一点官方文档没有提到但必须要做的事情是把FreeType的bin目录加入到PATH环境变量中。

  第四步是下载MicrosoftDirectX9.0SDK(Summer2004),安装后大约有298MB,在微软官方网站上搜索一下就可以找到下载地址,它是免费的。

安装后建立环境变量“ALT_DXSDK_PATH”指向DirectX9.0SDK的安装目录。

  第五步是去寻找一个名为“MSVCR100.DLL”的动态链接库,如果读者在前面安装了全套的VisualStudio2010,那这个文件在本机就能找到,否则上网搜索一下也能找到单独的下载地址,大概有744KB。

建立环境变量“ALT_MSVCRNN_DLL_PATH”指向这个文件所在的目录。

如果读者选择的是VS2003,这个文件名应当为“MSVCR73.DLL”,应该在很多软件中都包含有这个文件,如果找不到的话,前面下载的“BootstrapJDK”的bin目录中应该也有一个,直接拿来用吧。

1.5.5进行编译 

  现在需要下载的编译环境和依赖项目都准备齐全了,最后我们还需要对系统做一些设置以便编译能够顺利通过。

  首先执行VS2010中的VCVARS32.BAT,这个批处理文件的目的主要是设置INCLUDE、LIB、和PATH这几个环境变量,如果和笔者一样只是下载了编译器的话则需要手工设置它们,各个环境变量的设置值可以参考下面给出的代码清单1-1中的内容。

批处理运行完之后建立“ALT_COMPILER_PATH”环境变量让Makefile知道在哪里可以找到编译器。

  再建立“ALT_BOOTDIR”和“ALT_JDK_IMPORT_PATH”两个环境变量指向前面提到的JDK1.6的安装目录。

建立“ANT_HOME”指向ApacheANT的安装目录。

建立的环境变量很多,为了避免遗漏,笔者写了一个批处理文件以供读者参考,如代码清单1-1所示。

  代码清单1-1环境变量设置 

Bat代码 

1.SET 

ALT_BOOTDIR=D:

/_DevSpace/JDK 

1.6.0_21 

2.SET 

ALT_BINARY_PLUGS_PATH=D:

/jdkBuild/jdk7plug/openjdk-binary-plugs 

3.SET 

ALT_JDK_IMPORT_PATH=D:

4.SET 

ANT_HOME=D:

/jdkBuild/apache-ant-1.7.0 

5.SET 

ALT_MSVCRNN_DLL_PATH=D:

/jdkBuild/msvcr100 

6.SET 

ALT_DXSDK_PATH=D:

/jdkBuild/msdxsdk 

7.SET 

ALT_COMPILER_PATH=D:

/jdkBuild/vcpp2010.x86/bin 

8.SET 

ALT_FREETYPE_HEADERS_PATH=D:

/jdkBuild/freetype-2.3.5-1-bin/include 

9.SET 

ALT_FREETYPE_LIB_PATH=D:

/jdkBuild/freetype-2.3.5-1-bin/bin 

10. 

11.SET 

INCLUDE=D:

/jdkBuild/vcpp2010.x86/include;

D:

/jdkBuild/vcpp2010.x86/sdk/Include;

%INCLUDE% 

12.SET 

LIB=D:

/jdkBuild/vcpp2010.x86/lib;

/jdkBuild/vcpp2010.x86/sdk/Lib;

%LIB% 

13.SET 

LIBPATH=D:

14.SET 

PATH=D:

/jdkBuild/vcpp2010.x86/bin;

/jdkBuild/vcpp2010.x86/dll/x86;

/Software/OpenSource/cygwin/bin;

%ALT_FREETYPE_LIB_PATH%;

%PATH% 

  最后还需要再进行两项调整,官方文档没有说明这两项,但是必须要做完才能保证编译过程的顺利通过:

一是取消环境变量JAVA_HOME,这点很简单;

另外一项是尽量在英文的操作系统上编译,估计大部分读者会感到比较为难吧。

如果不能在英文的系统上编译就把系统的文字格式调整为“英语(美国)”,在控制面板-区域和语言选项的第一个页签中可以设置。

如果这个设置还不能更改就建立一个“BUILD_CORBA”的环境变量,将值设置为false,取消编译CORBA部分。

否则JavaIDL(idlj.exe)为*.idl文件生成CORBA适配器代码的时候会产生中文注释,而这些中文注释会因为字符集的问题而导致编译失败。

  完成了上述繁琐的准备工作之后,我们终于可以开始编译了。

进入控制台(Cmd.exe)后运行刚才准备好的设置环境变量的批处理文件,然后输入bash进入BourneAgainShell环境(习惯sh或ksh的读者请自便)。

如果JDK的安装源码中存在“jdk_generic_profile.sh”这个Shell脚本,先执行它,笔者下载的OpenJDK7B121版没有这个文件了,所以直接输入makesanity来检查我们前面所做的设置是否全部正确。

如果一切顺利几秒钟之后会有类似代码清单1-2所示的输出。

  代码清单1-2makesanity检查 

1.D:

\jdkBuild\openjdk7>

bash 

2.bash-3.2$ 

make 

sanity 

3.cygwin 

warning:

4. 

MS-DOS 

style 

path 

detected:

C:

/Windows/system32/wscript.exe 

5. 

Preferred 

POSIX 

equivalent 

is:

/cygdrive/c/Windows/system32/wscript.exe 

6. 

CYGWIN 

environment 

variable 

option 

"

nodosfilewarning"

turns 

off 

this 

warning. 

7. 

Consult 

the 

user'

guide 

for 

more 

details 

about 

paths:

8. 

9.( 

cd 

./jdk/make 

&

11.……因篇幅关系,中间省略了大量的输出内容…… 

12. 

13.OpenJDK-specific 

settings:

14. 

FREETYPE_HEADERS_PATH 

15. 

ALT_FREETYPE_HEADERS_PATH 

16. 

FREETYPE_LIB_PATH 

17. 

ALT_FREETYPE_LIB_PATH 

18. 

19.OPENJDK 

Import 

Binary 

Plug 

Settings:

20. 

IMPORT_BINARY_PLUGS 

true 

21. 

BINARY_PLUGS_JARFILE 

/jdkBuild/jdk7plug/openjdk-binary-plugs/jre/lib/rt-closed.jar 

22. 

ALT_BINARY_PLUGS_JARFILE 

23. 

BINARY_PLUGS_PATH 

24. 

ALT_BINARY_PLUGS_PATH 

25. 

BUILD_BINARY_PLUGS_PATH 

J:

/re/jdk/1.7.0/promoted/latest/openjdk/binaryplugs 

26. 

ALT_BUILD_BINARY_PLUGS_PATH 

27. 

PLUG_LIBRARY_NAMES 

28. 

29.Previous 

JDK 

30. 

PREVIOUS_RELEASE_PATH 

USING-PREVIOUS_RELEASE_IMAGE 

31. 

ALT_PREVIOUS_RELEASE_PATH 

32. 

PREVIOUS_JDK_VERSION 

1.6.0 

33. 

ALT_PREVIOUS_JDK_VERSION 

34. 

PREVIOUS_JDK_FILE 

35. 

ALT_PREVIOUS_JDK_FILE 

36. 

PREVIOUS_JRE_FILE 

37. 

ALT_PREVIOUS_JRE_FILE 

38. 

PREVIOUS_RELEASE_IMAGE 

39. 

ALT_PREVIOUS_RELEASE_IMAGE 

40.Sanity 

check 

passed. 

  Makefile的Sanity检查过程输出了编译所需的所有环境变量,如果看到“Sanitycheckpassed.”说明检查过程通过了,可以输入“make”执行整个Makefile,然后就去喝个下午茶再回来了,笔者Corei5/4GBRAM的机器编译整个JDK大概需要半个小时多点。

如果失败则需要根据系统输出的失败原因,回头再检查一下对应的设置。

并且最好在下一次编译之前先执行“makeclean”来清理掉上次编译遗留的文件。

  编译完成之后,打开OpenJDK源码下的build目录,看看是不是已经有一个编译好的JDK在那里等着了?

执行一下“java-version”,看到以自己机器命名的JDK了吧,很有成就感吧?

【注1】:

在2011年,JDKplug已经不再需要了,但在笔者写本次实战时使用的2010年12月9日发布的OpenJDKb121版还是需要这些JDKplug。

∙大小:

31.4KB

33.1KB

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1