Ubuntu14.04编译openjdk7时所遇问题及解决

本实验是在ubuntu14.04下进行的,编译的openjdk为openjdk 7,依赖的jdk为openjdk 6,在实践过程中遇到了三个问题

遇见问题1

之前用ubuntu16.04,安装依赖 libmotif4时,出现错误

如果系统使用的是ubuntu16.04; 安装 libmotif4 时 如果出现错误E: Package 'libmotif4' has no installation candidate

只是因为在最新的Ubuntu 16.04中不存在libmotif4,因此会发生此错误。

我们只需从libmotif4中下载deb文件,从文件下载到的目录运行以下命令:

sudo dpkg -i libmotif4_2.3.4-8ubuntu1_amd64.deb

遇见问题2

使用‘make’编译时会,出现 check_os_version 错误,这是为了阻止源码在老版本上被编译

解决方法

方法一: 添加对应的内核版本SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% 4%
方法二: 在make时添加参数 DISABLE_HOTSPOT_OS_VERSION_CHECK=ok

我使用的是方法二

make DISABLE_HOTSPOT_OS_VERSION_CHECK=ok

遇见问题3

time is more than 10 years from present

Error: time is more than 10 years from present: 1136059200000
java.lang.RuntimeException: time is more than 10 years from present: 1136059200000
	at build.tools.generatecurrencydata.GenerateCurrencyData.makeSpecialCaseEntry(GenerateCurrencyData.java:285)
	at build.tools.generatecurrencydata.GenerateCurrencyData.buildMainAndSpecialCaseTables(GenerateCurrencyData.java:225)
	at build.tools.generatecurrencydata.GenerateCurrencyData.main(GenerateCurrencyData.java:154)

解决方法:

修改jdk/src/share/classes/java/util/CurrencyData.properties文件

vim jdk/src/share/classes//java/util/CurrencyData.properties 
#修改108
AZ=AZM;2019-12-31-20-00-00;AZN
#修改381行
MZ=MZM;2019-06-30-22-00-00;MZN
#修改443行
RO=ROL;2019-06-30-21-00-00;RON
#修改535行
TR=TRL;2019-12-31-22-00-00;TRY
#修改561行
VE=VEB;2019-01-01-04-00-00;VEF

vim显示怎么行号?

按ESC键 然后输入:set nu ,回车 即可

改过之后

按ESC键 然后输入:wq ,保存并退出 即可

你可能感兴趣的:(JVM学习,编译jdk遇见问题)