|||
如何把JVM移植到arm环境中
环境:OS:ubuntu,scratchbox->arm
我实际移植JVM的步骤:
1,提供linux里面libX打头的那些库,它会提示你在configure的过程中,你根据需要下载并安装,有时候只需要做个连接,因为它需要的是.so,而不是.so.X.X等等,比如ln-slibXtst.so.6.1.0libXtst.so
2,下载jamvm-1.5.1.tar.gz从http://sourceforge.net/project/showfiles.phpgroup_id=75148/&abmode=1
./configure
make
fakerootmake install
3,安装jikes。
dpkg-buildpackage-fakeroot-uc-b
dpkg-i../jikes_XXX.deb
4,下载classpath-0.92.tar.gz从ftp://ftp.gnu.org/gnu/classpath/./configure--with-jikes--enable-jni
make
fakerootmake install
当然如果要保证编译通过的话,你们必须提供jikes工具和mozilla的相关的头文件,也可以通过./configure--with-jikes--enable-jni--disable-plugin来跳过plugin的编译,如果你们不提供web页的插件的话;实际上在第一步环境配置的时候我们提供的环境里面已经有这些相关的类库了,所以如果只是为了开发应用程序的话是,是不需要再编译的这个包的
5,编译的时候记得看readme和install;
6,exportjamvm环境到PATH中;
exportPATH=/usr/local/jamvm/bin:$PATH,这时候可以通过jamvm-version来看版本信息了;
7,classpath里面有许多的examples,比如可以通过jamvmgnu.classpath.examples.swing.Demo来执行示例代码;一切ok了,绝大部分的java程序是可以跑的了。
后记:
我后来重新做了一遍,发现放在我们的板子上经常会出现这样的一个问题:
“Cannotcreatesystemclassloader
Exceptionoccurredwhileprintingexception
(java/lang/NoClassDefFoundError)...
Originalexceptionwasjava/lang/UnsatisfiedLinkError”
我把/usr/local/classpath/share/classpath/glibj.zip展开后,重新copy到我的板子的/mnt/tflash上,然后
cd/usr/local
ln-s/mnt/tflash/classpathclasspath
jamvmHelloWorld
输出
HelloWolrd!
程序正常运行,说明JVM移植成功。