jamvm的移植:
1. classpath-0.98的编译
# ./configure CC=arm-linux-gcc --host=arm-linux --build=i686-linux --target=arm-linux --disable-gtk-peer --disable-gconf-peer --disable-plugin --disable-Werror --enable-jni
问题1:
checking if java works... configure: error: The Java compiler javac -Xlint:unchecked,cast,divzero,empty,finally,overrides failed (see config.log, check the CLASSPATH?)
解决方法:
把export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib语句中”=“后面的”.:“去掉
# make
问题2:
Unrecognized option: -o
Could not create the Java virtual machine.
解决问题:
--enable-tools=no
问题3:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
解决问题:
--disable-examples
# sudo make install
2. jamvm-0.94的移植
# ./configure --prefix=/usr/local/jamvm --with-classpath-install-dir=/usr/local/classpath --host=arm-linux
问题1:
configure: error: zlib is missing
解决问题:
很明显是需要支持zlib
下载zlib,解压,进入文件
# ./configure
# make CC=arm-linux-gcc
# sudo cp libz.a /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
# sudo cp zlib.h zconf.h /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/include/
-------------------------------------------------------------------------------
# make
# sudo make install
3. 关于java se程序在jamvm上的运行:
移植到开发板:
之前在编译classpath和jamvm的时候都有一个这样的选项“--prefix”,这就是编译后结果存放的路径
需在开发板上创建相同的路径,并将classpath和jamvm移植到开发板刚创建的路径处。
提示:
假如没有设置选项“--prefix”,则classpath的默认路径是/usr/local/classpath,那在开发板上也
创建相同的路径放置classpath。通用,jamvm的默认路径是/usr/local/jamvm。
环境的配置:
在/etc/init.d/rcS中添加如下
export PATH=$PATH:/usr/local/jamvm/bin
export LD_LIBRARY_PATH=/usr/local/classpath/lib/classpath
export BOOTCLASSPATH=/usr/local/jamvm/share/jamvm/classes.zip:/usr/local/classp
export BOOTCLASSPATH=$BOOTCLASSPATH:/usr/local/classpath/share/classpath
注意:
1. 在配置环境之前,要先用jamvm -veriosn,显示如下信息:
......
Boot Library Path: /usr/local/classpath/lib/classpath
Boot Class Path: /usr/local/jamvm/share/jamvm/classes.zip:/usr/local/classpath/share/classpath/glibj.zip
LD_LIBRARY_PATH和export BOOTCLASSPATH必须和这儿相同
2. 为什么要添加export BOOTCLASSPATH=$BOOTCLASSPATH:/usr/local/classpath/share/classpath
这是我们放置自己的应用程序的路径。假如你添加了这句话,那你自己编译的程序必须放在/usr这个
目录(包括放在/usr的任一子目录也能运行)才能执行。不然会出现下面这样的错误:
java.lang.ClassNotFoundException: cn/jpush/example/JPushClientExample
at java.lang.VMClass.forName(Native Method)
at java.lang.Class.forName(Class.java:233)
at jamvm.java.lang.JarLauncher.main(JarLauncher.java:46)
运行程序:
1. jamvm [option] class文件
使用于当个文件的执行
2. jamvm -jar xxx.jar
这种方法使用于多class文件,适用于做工程。
建议的eclipse下打jar包。如果出现下面这样的错误,那就是jar没有制作好。
Couldn't find Main-Class attribute in jpush.jar Manifest.
1. classpath-0.98的编译
# ./configure CC=arm-linux-gcc --host=arm-linux --build=i686-linux --target=arm-linux --disable-gtk-peer --disable-gconf-peer --disable-plugin --disable-Werror --enable-jni
问题1:
checking if java works... configure: error: The Java compiler javac -Xlint:unchecked,cast,divzero,empty,finally,overrides failed (see config.log, check the CLASSPATH?)
解决方法:
把export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib语句中”=“后面的”.:“去掉
# make
问题2:
Unrecognized option: -o
Could not create the Java virtual machine.
解决问题:
--enable-tools=no
问题3:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
解决问题:
--disable-examples
# sudo make install
2. jamvm-0.94的移植
# ./configure --prefix=/usr/local/jamvm --with-classpath-install-dir=/usr/local/classpath --host=arm-linux
问题1:
configure: error: zlib is missing
解决问题:
很明显是需要支持zlib
下载zlib,解压,进入文件
# ./configure
# make CC=arm-linux-gcc
# sudo cp libz.a /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
# sudo cp zlib.h zconf.h /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/include/
-------------------------------------------------------------------------------
# make
# sudo make install
3. 关于java se程序在jamvm上的运行:
移植到开发板:
之前在编译classpath和jamvm的时候都有一个这样的选项“--prefix”,这就是编译后结果存放的路径
需在开发板上创建相同的路径,并将classpath和jamvm移植到开发板刚创建的路径处。
提示:
假如没有设置选项“--prefix”,则classpath的默认路径是/usr/local/classpath,那在开发板上也
创建相同的路径放置classpath。通用,jamvm的默认路径是/usr/local/jamvm。
环境的配置:
在/etc/init.d/rcS中添加如下
export PATH=$PATH:/usr/local/jamvm/bin
export LD_LIBRARY_PATH=/usr/local/classpath/lib/classpath
export BOOTCLASSPATH=/usr/local/jamvm/share/jamvm/classes.zip:/usr/local/classp
export BOOTCLASSPATH=$BOOTCLASSPATH:/usr/local/classpath/share/classpath
注意:
1. 在配置环境之前,要先用jamvm -veriosn,显示如下信息:
......
Boot Library Path: /usr/local/classpath/lib/classpath
Boot Class Path: /usr/local/jamvm/share/jamvm/classes.zip:/usr/local/classpath/share/classpath/glibj.zip
LD_LIBRARY_PATH和export BOOTCLASSPATH必须和这儿相同
2. 为什么要添加export BOOTCLASSPATH=$BOOTCLASSPATH:/usr/local/classpath/share/classpath
这是我们放置自己的应用程序的路径。假如你添加了这句话,那你自己编译的程序必须放在/usr这个
目录(包括放在/usr的任一子目录也能运行)才能执行。不然会出现下面这样的错误:
java.lang.ClassNotFoundException: cn/jpush/example/JPushClientExample
at java.lang.VMClass.forName(Native Method)
at java.lang.Class.forName(Class.java:233)
at jamvm.java.lang.JarLauncher.main(JarLauncher.java:46)
运行程序:
1. jamvm [option] class文件
使用于当个文件的执行
2. jamvm -jar xxx.jar
这种方法使用于多class文件,适用于做工程。
建议的eclipse下打jar包。如果出现下面这样的错误,那就是jar没有制作好。
Couldn't find Main-Class attribute in jpush.jar Manifest.