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位系统,不稳定性高,不建议使用
上述部分内容ubuntu已经内置,如果没有,则使用apt-get安装;
3.1.4版本先执行下面的命令。
apt-get install git ant gcc g++ gcc-multilib g++-multilib bison automake gettext libtool
自行选择安装Oracle JDK 1.6及以上的版本,但是对新版java的兼容存在问题
推荐:Oracle JDK 1.6.0_01
ps:1.6.0_45等新版本会遇到各种bug
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
由于网络等问题,build过程中的很多文件下载不了;
解决方法
因为有些文件过时,很难再往上找到,所以我进行了一个汇总:
链接:https://share.weiyun.com/Y9LUwsK6 密码:f6hksc
cd ${jikesrvm.dir}
ant