前言
java有很多虚拟机版本,最出名的是Oracle JDK和OpenJDK
但是两个版本都是接近商用的版本,而用于研究的虚拟机主要有MaxineVM和JikesRVM等
Jikesrvm因为其独特的MMTk框架,非常适合做垃圾回收器、内存管理的研究
JikesRVM:https://www.jikesrvm.org/Resources/Presentations/
系统要求
| target.name | OS | ISA | Address size | Status |
|---|---|---|---|---|
| ia32-linux | Linux | IA32 | 32 bits | OK |
| ia32-osx | OS X | IA32 | 32 bits | ??? |
| ia32-solaris | Solaris | IA32 | 32 bits | ??? |
| ia32-cygwin | Windows | IA32 | 32 bits | NYI |
| x86_64-linux | Linux | IA32 | 32 bits | OK |
| x86_64-osx | OS X | IA32 | 32 bits | ??? |
| x86_64_m64-linux | Linux | IA32e | 64 bits | WIP |
| x86_64_m64-osx | OS X | IA32e | 64 bits | ??? |
| ppc32-linux | Linux | ppc32 (big e.) | 32 bits | ??? |
| ppc64-linux | Linux | ppc64 (big e.) | 64 bits | OK |
Jikes不支持Windows系统,推荐使用ia32-linux;
本文使用:Ubuntu 16.04 i686
实测Ubuntu 64位也可以成功build,是通过兼容32位的方式实现的,jikes正在尝试兼容64位系统,不稳定性高,不建议使用
Build环境要求
- git
- ant
- ant-optional
- libtool
- gettext
- automake
- gawk
- bison
- g++
- gcc
- perl
- make
- tar
- cvs
- autoconf
上述部分内容ubuntu已经内置,如果没有,则使用apt-get安装;
3.1.4版本先执行下面的命令。
apt-get install git ant gcc g++ gcc-multilib g++-multilib bison automake gettext libtool
Java环境要求
自行选择安装Oracle JDK 1.6及以上的版本,但是对新版java的兼容存在问题
推荐:Oracle JDK 1.6.0_01
ps:1.6.0_45等新版本会遇到各种bug
Ant文件配置
host.name=ia32_linux
target.name=ia32.linux
config.name=development
patch.name=t0
components.dir=${jikesrvm.dir}/components
dist.dir=${jikesrvm.dir}/dist
build.dir=${jikesrvm.dir}/target
components.cache.dir=${jikesrvm.dir}/downloadcache
- host.name是build Jikes的主机的名称,必须和${jikesrvm.dir}/build/host/中某个“.properties”文件的name相同
- target.name是要run Jikes的主机的名称,同上
- config.name是配置名,要和${jikesrvm.dir}/build/config/中某个“.properties”文件的name相同
- patch.name、dist.dir、build.dir是可选项,一般不需要填写;详细参见官网
- components.cache.dir是build过程中需要的一些文件的缓存文件夹,建议设置
BugFix
由于网络等问题,build过程中的很多文件下载不了;
解决方法
- 设置缓存文件夹components.cache.dir
- 把遇到的下不下来的文件手动下载,放在自己指定的文件夹中
文件汇总:
因为有些文件过时,很难再往上找到,所以我进行了一个汇总:
链接:https://share.weiyun.com/Y9LUwsK6 密码:f6hksc
Build
cd ${jikesrvm.dir}
ant

本文详述了如何在Ubuntu16.04系统上搭建JikesRVM,一个适合垃圾回收和内存管理研究的虚拟机。首先介绍了JikesRVM的特点和系统要求,接着列出了必要的Build环境组件,包括git、ant等,并提供了针对1.6.0_01版本的Java环境建议。在Ant文件配置部分,解释了关键参数的含义。此外,还分享了解决Build过程中文件下载问题的BugFix方法,并提供了一份包含缺失文件的链接。最后,给出了执行build的命令。
1558

被折叠的 条评论
为什么被折叠?



