首先试了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编译器

极路由4pro安装java(Jamvm 2.0.0 + gnu classpath 0.9.8)的更多相关文章

  1. 极路由4pro交叉编译c、c++的代码

    首先在官方文档中下载SDK 极路由4pro是mtmips架构,即32位mips,小端的,因此下载这个 防止官方的下载链接失效,特意上传到百度网盘: 链接:https://pan.baidu.com/s ...

  2. 极路由4pro(HC5962)安装python

    基本配置 其实极路由4.极路由4 pro.极路由B70都是一个型号的(HC5962) CPU:MT7621AT + MT7612EN + 7603EN 内存:256MB DDR3 RAM 闪存:128 ...

  3. 极路由4pro(HC5962)设置阿里云DDNS

    v2ex有个帖子说用Dnspod的API可以一行搞定,不过我既然买的是阿里云的域名还是想尽量用阿里云的API,感觉比较安全,另外修改解析记录后也会自动发邮件通知,所以还是调用阿里云的API吧.阿里云的 ...

  4. 极路由hc5661安装tcpdump

    原先有个tcpdump的插件,但是现在已经下架了. 条件: 已root的极1s HC5661 - 1.4.11.21001s 步骤: ssh进去后,opkg install http://downlo ...

  5. 安装java时,配置环境变量classpath的作用

    想必大家在安装javaSE或其它版本时会注意到,在配置环境变量path之后,还需要新建一个名为CLASSPATH,变量值设为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt. ...

  6. CentOS7.0 安装JAVA周围环境

    CentOS7.0 安装JAVA周围环境  安装JDK 1.配置JDK环境变量 把下载好的JDK(jdk-7u75-linux-x64.gz)文件上传到 Reg: /home/p2pweb/java/ ...

  7. 无法安装Java,以下开关中存在错误:“0”

    无法安装Java,以下开关中存在错误:“0”:. 解决方法:以管理员运行

  8. linux(centos8):安装java jdk 14 (java 14.0.2)

    一,下载jdk14 官方网站: https://www.oracle.com/java/ 下载页面: https://www.oracle.com/cn/java/technologies/javas ...

  9. 极路由2(极贰)ROOT并刷了OpenWrt

    绕过官方的ROOT 查了一下root教程, 如果还需要保留保修, 则需要自己想办法回退版本, 下载搜狐插件到sd卡, 找个linux系统修改sd卡上程序的执行权限, 然后才能开启ssh, 具体的方法可 ...

随机推荐

  1. BA-siemens-apogee自适应控制

    简介 APOGEE楼控系统的控制器中,包括了由 Cybosoft开发的基于无模型自适应控制技术的自适应控制. 自适应控制是一个复杂的闭环循环控制算 法.自适应控制能自动校正参数以补偿机械的系 统/负载 ...

  2. [asp.net]ashx中session存入,aspx为null的原因(使用flash uploader)

    I am using uploadify to upload files, they automatically post to the handler. I then modify the sess ...

  3. iOS中的crash防护(二)KVC造成的crash

      接上篇< iOS中的crash防护(一)unrecognized selector sent to instance> 我们攻克了找不到方法实现的crash,这一篇我这里主要分析一下在 ...

  4. Android调用第三方App

    private List<Map<String, Object>> list = null; private PackageManager mPackageManager; p ...

  5. 《大话操作系统——做坚实的project实践派》(2)

      <大话操作系统--做坚实的project实践派>(2) 

  6. Hbase集群扩展

    当hbase集群节点不够用时,我们须要新增节点来对集群进行扩展.hbase集群的扩展是非常easy的,过程例如以下: 一.准备一台新机器作为扩展节点,这里是作为slaves15,该机子要先与maste ...

  7. Oracle DBA优化数据库性能心得

    如今的优化己经向优化等待(waits)转型了,实际中性能优化最根本的出现点也都集中在IO,这是影响性能最主要的方面,由系统中的等待去发现Oracle库中的不足.操作系统某些资源利用的不合理是一个比较好 ...

  8. (转)用Lottie制作动画,我的月薪翻了一番!!

    Lottie是Airbnb发布的开源动画库. 帮助动效落地.学会使用Lottie,会极大地提高工作效率. Lottie是一种新的开发动画的方式. 学会使用Lottie,会极大改善你和开发小哥哥撕逼的情 ...

  9. PHPMailer使用说明

    PHPMailer是一个用来发送电子邮件的函数包,远比PHP提供的mail()方便易用. 邮件格式说明 一封普通的电子邮件,通常是由发件人.收件人.抄送人.邮件标题.邮件内容.附件等内容构成.以下是一 ...

  10. 流式计算新贵Kafka Stream设计详解--转

    原文地址:https://mp.weixin.qq.com/s?__biz=MzA5NzkxMzg1Nw==&mid=2653162822&idx=1&sn=8c4611436 ...