您的位置:首页 > 编程语言 > Java开发

极路由4pro安装java(Jamvm 2.0.0 + gnu classpath 0.9.8)

2018-01-05 17:14 926 查看
首先试了gnu classpath 0.9.9,编译不过后来改成0.9.8

编译环境

OS: 64位 Ubuntu 16.04 LTS(vmware虚拟机)

SDK: 用之前讲过的官方SDKmtmips



除了官方文档要装的上面这些东西,还要手动装一个
g++-multilib
,否则编译classpath会出错
,另外要装
tar
,方便压缩解压文件

sudo apt-get install g++-multilib tar

进入交叉编译环境

进入SDK解压目录
OpenWrt-SDK-mtmips-for-redhat-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2


运行

./scripts/cross-compile.sh ./

可以看到终端显示黄色文字
cross-compile@mipsel:
,说明进入了交叉编译环境

之后都在这个交叉编译环境中操作



之后找一个空目录做编译

mkdir ~/show
cd ~/show

交叉编译classpath

wget ftp://ftp.gnu.org/gnu/classpath/classpath-0.98.tar.gz tar -zxvf classpath-0.98.tar.gz
cd classpath-0.98/
sudo mkdir -p /usr/classpath
./configure --prefix=/usr/classpath --disable-examples --without-x --disable-qt-peer --disable-gtk-peer --disable-gconf-peer --disable-plugin --disable-alsa --disable-dssi --disable-Werror --disable-tools --host=mipsel-openwrt-linux
make
sudo make install

操作完成后,classpath就会安装到
/usr/classpath
目录,接着校验安装后的classpath是否是mipsel(32位小端的mips架构的cpu)平台的文件:

file /usr/classpath/lib/classpath/libjavaio.so.0.0.0

如果显示
ELF 32-bit LSB shared object, MIPS, MIPS32 rel2 version 1 (SYSV)
,说明编译正确了



把整个/usr/classpath目录打包传给极路由,注意把
/soft
替换成外接硬盘的目录防止路由器空间不足

zip -r classpath.zip /usr/classpath
scp -P 1022 classpath.zip root@192.168.199.1:/soft

交叉编译jamvm

cd ~/show
wget https://jaist.dl.sourceforge.net/project/jamvm/jamvm/JamVM%202.0.0/jamvm-2.0.0.tar.gz tar -zxvf jamvm-2.0.0.tar.gz
cd jamvm-2.0.0/
sudo mkdir -p /usr/jamvm
./configure --prefix=/usr/jamvm --host=mipsel-openwrt-linux
make
sudo make install

同样检查安装后的文件是否是mipsel平台的:

file /usr/jamvm/bin/jamvm




打包上传

zip -r jamvm.zip /usr/jamvm
scp -P 1022 jamvm.zip root@192.168.199.1:/soft

给路由器安装classpath和jamvm

先检查jamvm能否打印版本号:

cd /soft
mkdir classpath && cd classpath && unzip ../classpath.zip && cd ..
mkdir jamvm && cd jamvm && unzip ../jamvm.zip && cd ..
jamvm/usr/jamvm/bin/jamvm -version




注意看上面红框框出来的三个路径必须要存在,否则无法运行字节码,所以我们可以加上软连接指过去:

ln -s classpath/usr/classpath /usr/local/classpath
ln -s jamvm/usr/jamvm /usr/jamvm

最后加上
/etc/profile
的环境变量,这个搞过java的都懂就不说了

在x86平台编译好java1.5的字节码,然后上传到路由器中用jam跑:





打完收工

注意jamvm+classpath只能支持到java1.5,如果想支持到1.8的话,需要jamvm结合openjdk8才行,但现在openjdk8还不支持mipsel

分享一下编译好的classpath和jamvm:

链接:https://pan.baidu.com/s/1sll0W6x 密码:6mui

这个版本只支持tomcat 5.0、spring 2.5.6、maven 3.1.1 及之前的版本。tomcat需要把
bin/setclasspath.sh
中检查java路径是否合法的代码去除掉,jsp也别想了,没有javac编译器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: