最近重新编译了一下jdk,遇到了不少问题。特此记录。
openjdk,ant, linux-jdk我都放到网盘中了 ,具体地址 http://pan.baidu.com/s/1ntJkB5f
先说明一下我的环境(64位)
[zhenghui@localhost openjdk]$ cat /etc/issue Fedora release 20 (Heisenbug)
由于这个系统是临时装的,所以很多东西都没有(包括gcc,g++等)。编译的时候,反正就是在openjdk目录下运行
一个个错误排除解决吧。
1 安装gcc g++
make工具应该是默认安装的。如果没有,则直接 install make。
2 安装ALSA声卡驱动
由于jdk支持声音处理,所以需要安装0.9.1版本以上的ALSA驱动。
Please install ALSA (drivers and lib). You can download the
source distribution from http://www.alsa-project.org or go to
http://www.freshrpms.net/docs/alsa/ for precompiled RPM packages.
找了N多法子,最后发现解决办法很easy
呵呵
3 FreeType 字体错误
具体的问题如下:
make[2]: Entering directory `/home/zhenghui/software/openjdk/jdk/make/tools/freetypecheck'
解决方法是
4 do not have access to valid Cups header file
具体的错误如下
Please check your access to
/usr/include/cups/cups.h
and/or check your value of ALT_CUPS_HEADERS_PATH,
CUPS is frequently pre-installed on many systems,
or may be downloaded from http://www.cups.org
解决的方法是安装一个 cups-devel.。我是x86 64位的,所以
搞定。
环境变量设置:
##jdk路径设置
export ALT_BOOTDIR="/home/zhenghui/software/jdk1.7.0_45"
export ALT_JDK_IMPORT_PATH="/home/zhenghui/software/jdk1.7.0_45"
##ant路径设置
export ANT_HOME=/home/zhenghui/software/apache-ant-1.8.2
##允许自动下载
export ALLOW_DOWNLOADS=true
##设置编译的线程数,一般是设置成与cpu个数一样
export HOTSPOT_BUILD_JOBS=4
##编译结果存放路径
export ALT_OUTPUTDIR=/home/zhenghui/software/openjdk/build
##如果是64位系统
export ARCH_DATA_MODEL=64
##顺手取消两个环境变量设置
unset JAVA_HOME
unset CLASSPATH
环境和依赖看上去已经解决的差不多了。下面就直接到 /openjdk 下直接执行make命令就好了。慢慢等吧。
如果只是编译hotspot的话,那么直接在/openjdk/hostspot/make下执行
make jvmg jvmg1 2>&1 | tee $ALT_OUTPUTDIR/build.log
在编译的时候,遇到了一个很奇怪的问题
cannot find -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: error: ld returned 1 exit status
ln: failed to create symbolic link 'libjvm_g.so': File exists
ln: failed to create symbolic link 'libjvm_g.so.1': File exists
解决了很久。网上的解决方案由于都不是针对编译jdk的,所以一直没找到法子。最后的解决办法是
最后编译成功。
由于我只是只是单独编译了hotspot,所以虚拟机的输出结果在
对应的目录有
total 48
drwxrwxr-x. 2 zhenghui zhenghui 4096 May 24 14:50 debug
drwxrwxr-x. 2 zhenghui zhenghui 4096 May 24 14:09 fastdebug
drwxrwxr-x. 7 zhenghui zhenghui 4096 May 24 11:56 generated
drwxrwxr-x. 3 zhenghui zhenghui 20480 May 24 14:52 jvmg
drwxrwxr-x. 2 zhenghui zhenghui 4096 May 24 11:56 optimized
drwxrwxr-x. 2 zhenghui zhenghui 4096 May 24 11:56 product
drwxrwxr-x. 2 zhenghui zhenghui 4096 May 24 11:56 profiled
上面我的命令只是编译jvmg版的hotspot。所以除了jvmg目录,其他目录下是没有hotspot的。
最后是通过gamma启动器来启动hotspot。直接启动的话,还是会抛错,
./gamma: error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory
可以发现,其实在当前目录(也就是jvmg目录)就有对应的libjvm.so ,所以,修改 /etc/ld.so.conf 文件,把当前目录加进去。具体如下
include ld.so.conf.d/*.conf
/home/zhenghui/software/openjdk/build/linux_amd64_compiler2/jvmg
然后别忘了执行 ldconfig 命令让上面的修改生效。
再次运行
JAVA_HOME must point to a valid JDK/JRE to run gamma
Error: could not find libjava.so
Error: could not find Java 2 Runtime Environment.
这个问题解决就很容易了。
[zhenghui@localhost jvmg]$ echo $JAVA_HOME
/home/zhenghui/software/jdk1.7.0_25
[zhenghui@localhost jvmg]$ ./gamma -version
Using java runtime at: /home/zhenghui/software/jdk1.7.0_25/jre
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
OpenJDK 64-Bit Server VM (build 24.0-b56-internal-jvmg, mixed mode)
bingo!
-----------------------分割线,下面是三年前的记录------------------------------
自己在ubuntu上装的.按照撒加的http://rednaxelafx.iteye.com/blog/875957 文章.中间记录一些问题.
1 在解压jdk-6u23-fcs-src-b05-jrl-12_nov_2010.jar 与 jdk-6u23-fcs-bin-b05-jrl-12_nov_2010.jar这两个文件的时候
感谢撒迦的帮助..
2 在检查编译环境正确性的时候 也就是
$ make dev-sanity BUILD_DEPLOY=false SKIP_COMPARE_IMAGES=true ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk ALT_DEVTOOLS_PATH=/usr/bin HOTSPOT_BUILD_JOBS=2
的时候.编译发生错误fatal error: alsa/asoundlib.h: No such file or directory错误
解决的方法是
apt-get install libasound2-dev
相关推荐
不过,值得注意的是,反编译可能涉及版权和法律问题。未经授权对他人代码进行反编译可能会侵犯原作者的知识产权,因此在使用反编译工具时,一定要确保遵循相关法律法规,尊重他人的劳动成果。 在给定的压缩包文件...
对于初学者来说,安装JDK可能会遇到不少挑战。本文将详细介绍如何安装JDK1.6,并配置环境变量。 首先,需要访问Oracle官网提供的JDK下载页面(http://java.sun.com/javase/downloads/index.jsp),找到JDK1.6的下载...
### jdk环境变量配置 在计算机编程领域,Java是一种广泛使用的高级编程语言,而Java开发工具包(JDK)则是支持Java程序开发的基础...在配置过程中遇到问题时,建议查阅官方文档或寻求专业帮助,以避免不必要的错误。
JDK 14作为Oracle JDK的一部分,有强大的社区支持,包括官方文档、开源项目、论坛和博客,可以帮助开发者解决在使用过程中遇到的问题。同时,Oracle会定期发布更新,修复已知问题,增强功能。 总结来说,JDK 14对...
Java 8提供了更好的异常处理机制和更强大的日志记录接口,使得在使用Google API过程中遇到的问题更容易被诊断和解决。 10. **实战应用示例** 为了更好地理解JDK 1.8与Google API的结合,我们可以参考实际案例,如...
【Ubuntu14.04编译android4.4源码一次性成功】 在 Ubuntu 14.04 系统上...在整个过程中,保持良好的记录习惯,对于遇到的问题和解决方法,及时记录下来,这不仅可以帮助自己避免重复错误,也能为其他开发者提供参考。
Android源码编译过程是Android开发中的核心环节,它涉及到一系列复杂的步骤,旨在将源代码...在Android源代码编译过程.txt文件中,应该记录了编译过程中的具体步骤和可能遇到的问题,是学习和解决问题的重要参考资料。
"release"文件记录了JDK的具体版本信息,包括版本号、构建日期和平台等。"THIRDPARTYLICENSEREADME.txt"和"THIRDPARTYLICENSEREADME-JAVAFX.txt"这两个文件则分别列出了JDK中所依赖的第三方库及其对应的许可协议,...
请注意,如果遇到问题,还可以尝试以下备选方案: - 创建新的系统变量`JAVA_HOME`,并将值设为JDK的安装路径。 - 修改`PATH`变量,添加`;%JAVA_HOME%\bin;`和`;%JAVA_HOME%\jre\bin;`。 - 创建`CLASSPATH`变量,设置...
发行说明详细记录了JDK 6的新特性、改进的地方以及已知的问题。这对于开发者来说非常重要,因为它可以帮助他们更好地了解如何利用JDK中的新功能,并了解哪些地方需要注意。 #### 兼容性 JDK 6在设计上确保了向后...
### OpenOffice 3.0编译环境搭建详细指南 #### 一、概述 本文档旨在为希望在Windows平台上从源代码构建OpenOffice 3.0的开发者提供详细的...如果您在搭建过程中遇到任何问题,可以参考提供的官方文档链接寻求帮助。
在Java编程过程中,使用JDK(Java Development Kit)进行编译和运行是常规步骤。然而,初学者或经验丰富的开发者都可能遇到各种运行时问题。本文将深入探讨在Java中使用JDK运行程序时可能出现的一些常见问题,并提供...
在搭建编译环境以适应多平台MTK(MediaTek)源码的场景下,Ubuntu Linux操作系统是首选的...在实际操作中,建议记录详细的配置过程和遇到的问题,这不仅能帮助自己今后快速回顾和复现环境,还能为团队协作提供便利。
首先,我们需要一个合适的编译环境,推荐使用64位的Ubuntu 10.04操作系统,因为其他版本可能会遇到未知问题。然而,如果你选择其他Ubuntu版本,也可能能够编译,但需要准备应对可能遇到的Bug。 编译环境的搭建至关...
7. **JShell增强**:JDK内置的REPL(Read-Eval-Print Loop)工具JShell在JDK 11中得到了增强,支持了变量别名和命令历史记录。 8. **删除过时API**:为了保持API的清洁,JDK 11移除了许多长期废弃的API,如`sun....
如果你遇到这些问题,参考描述中的博客或其他在线资源可能有所帮助,这些资源通常记录了作者在编译过程中遇到的挑战和解决方法。 总结,编译Hadoop 2.7.2在Win10环境下是一项技术性的任务,需要对Hadoop、Cygwin和...
### Java程序设计基础之JDK安装教程 #### 一、JDK简介 JDK(Java Development Kit),即Java开发工具包,是Java编程语言的核心组件之一。它包含了编译、调试和运行Java...如果遇到任何问题,建议及时寻求老师的帮助。
为了能在调试时查看变量值,需要重新编译JDK源码,并包含调试信息。 首先,要解决这一问题,我们需要创建两个目录,一个用于存放JDK源码,另一个用于存放调试信息。然后,我们需要将JDK源码包解压至源码目录中,...
### 使用Maven编译Hadoop ...3. **文档记录**:建议详细记录整个编译过程中的每一步,包括遇到的问题以及解决方案,以便未来参考或复用。 通过以上步骤,您就可以在CentOS 6.7 64位系统上成功编译Hadoop 2.7.1版本了。