编译及调试OpenJDK 8

看了深入理解Java虚拟机:JVM高级特性与最佳实践(第2版) 之后决定自己编译一下OpenJDK,但是书中介绍的关于编译和调试部分已经过时了。所以根据搜索的资料,自己编译调试了一下。

IDE:Netbeans 8.2(最新版本即可)
操作系统:Ubuntu 14.04 (内核3.13.0)
make版本:3.81
源代码:OpenJDK 8

编译OpenJDK 8

下载源代码

我是直接下载打包好的源代码(使用hg下载还需要再安装hg,这个东西相对来说还是太小众了),地址在这里

环境配置

唯一需要注意一点的就是Bootstrap JDK的版本需要低于要编译的JDK的版本。即如果要编译OpenJDK 8,那么Bootstrap JDK的版本需要为7

依赖安装没有必要复制别人的,你完全可以运行bash ./configure文件,它会提示你哪些依赖没有安装。反复执行几次,直至成功。

如果你是编译OpenJDK 8,那么环境变量部分也可以直接忽略。这种方式是编译之前版本的方式。从OpenJDK 8开始,改为了"configure && make" style build

编译

make all

使用NetBeans调试

打开项目

其实OpenJDK 8里边已经有针对NetBeans生成好的项目文件,我们没有必要像有些文章或者书里边所说的创建新的C++项目然后导入源代码这么麻烦,直接打开即可。

路径在./common/nb_native

打开之后,注意将configuration切换为”Linux_64”
这里写图片描述

其实我们也可以略过上边的make all,用NetBeans打开后直接编译。效果是一样的。

容易遇到的问题

文章NetBeans 调试 openjdk8里边提到,需要在构建命令后边加上参数DEBUG_BINARIES=tr

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
编译 OpenJDK 16 需要以下步骤: 1. 安装必要的依赖项 在编译 OpenJDK 16 前,需要安装一些必要的依赖项。在 Ubuntu 系统上,可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install build-essential zip unzip libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev libcups2-dev libfreetype6-dev libasound2-dev libfontconfig1-dev libxrandr-dev libXi-dev libgif-dev libjpeg-turbo8-dev libpng-dev libbz2-dev libgtk-3-dev autoconf libtool libxml2-dev libxslt1-dev python3-dev libffi-dev libssl-dev liblzma-dev ``` 2. 下载 OpenJDK 16 源代码 可以从官方网站下载 OpenJDK 16 源代码压缩包,也可以使用以下命令从 Github 上下载: ``` hg clone http://hg.openjdk.java.net/jdk-updates/jdk16u/ cd jdk16u ``` 3. 配置环境变量 在编译 OpenJDK 16 前,需要设置以下环境变量: ``` export LANG=C export ALT_BOOTDIR=/path/to/your/boot/jdk export PATH=$ALT_BOOTDIR/bin:$PATH ``` 其中,`ALT_BOOTDIR` 是指你已经安装的 JDK 的路径。 4. 配置编译选项 进入 OpenJDK 16 源代码根目录,使用以下命令配置编译选项: ``` bash configure --with-toolchain-type=clang \ --with-jvm-features=shenandoahgc,zgc \ --with-target-bits=64 \ --with-sysroot=/path/to/your/sysroot \ --disable-warnings-as-errors \ --with-debug-level=slowdebug ``` 其中,`--with-toolchain-type` 指定使用 clang 工具链,`--with-jvm-features` 指定使用 ShenandoahGC 和 ZGC 内存管理器,`--with-target-bits` 指定编译 64 位版本的 OpenJDK,`--with-sysroot` 指定 Android 平台的 sysroot 路径,`--disable-warnings-as-errors` 禁用将警告视为错误的选项,`--with-debug-level` 指定调试级别。 5. 编译 OpenJDK 16 使用以下命令编译 OpenJDK 16: ``` make images ``` 6. 安装 OpenJDK 16 编译完成后,可以使用以下命令将 OpenJDK 16 安装到指定目录: ``` make install DESTDIR=/path/to/install ``` 其中,`DESTDIR` 指定安装目录。 以上就是使用 aarch64-linux-android23-clang 工具链编译 OpenJDK 16 的详细步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值