当前位置: 首页 > 工具软件 > Jikes > 使用案例 >

java研究虚拟机JikesRVM之build环境搭建

司马羽
2023-12-01

前言

java有很多虚拟机版本,最出名的是Oracle JDK和OpenJDK

但是两个版本都是接近商用的版本,而用于研究的虚拟机主要有MaxineVM和JikesRVM等

Jikesrvm因为其独特的MMTk框架,非常适合做垃圾回收器、内存管理的研究

JikesRVM:https://www.jikesrvm.org/Resources/Presentations/

系统要求

target.nameOSISAAddress sizeStatus
ia32-linuxLinuxIA3232 bitsOK
ia32-osxOS XIA3232 bits???
ia32-solarisSolarisIA3232 bits???
ia32-cygwinWindowsIA3232 bitsNYI
x86_64-linuxLinuxIA3232 bitsOK
x86_64-osxOS XIA3232 bits???
x86_64_m64-linuxLinuxIA32e64 bitsWIP
x86_64_m64-osxOS XIA32e64 bits???
ppc32-linuxLinuxppc32 (big e.)32 bits???
ppc64-linuxLinuxppc64 (big e.)64 bitsOK

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
 类似资料: