首先试了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. BLOB的读写操作

    //BLOB写入操作package zxt.xsfw.action.ceshi; import javax.servlet.http.HttpServletRequest; import javax. ...

  2. 数据库-mongodb-mongod参数说明

    Mongodb启动命令mongod参数说明 mongod的主要参数有: 基本配置 ----------------------------------------------------------- ...

  3. 在不同的浏览器下FORM及它的小伙伴们默认样式的CSS属性值是不全然一致

    我们一般在定义CSS样式的时候都须要定义去掉HTML标签默认样式的CSS,原因是在不同的浏览器以下它们的表现出来的默认样式不全然一致,我们要保证在不同的浏览器下它们能正常显示出我们想要达到的预期效果, ...

  4. Struts2简单环境搭建

    一.开篇 Struts2是一个运行于web容器的表示层框架,其核心作用是帮助我们处理Http请求.Struts2处理Http请求(Request),并进行内部处理,再进行Http返回. 下载strut ...

  5. CentOS 安装 PHP 扩展

    下载地址:https://pecl.php.net/package/redis 上传目录:/usr/local/src //安装依赖 yum install php-devel -y //进入安装包目 ...

  6. C#测量程序运行时间及cpu使用时间实例方法

    private void ShowRunTime() { TimeSpan ts1 = Process.GetCurrentProcess().TotalProcessorTime; Stopwatc ...

  7. HTMLWEST网页特效大全

    网页特效大全网:www.htmlwest.com 收藏一下,很不错的站.

  8. Servlet的生命周期和Jsp的生命周期

    Servlet的生命周期: 1)构造方法(第1次访问) 2)init方法(第1次访问) 3)service方法 4)destroy方法 Jsp的生命周期 1)翻译: jsp->java文件 2) ...

  9. Codeforces Round #493 (Div. 2) B. Cutting 前缀和优化_动归水题

    不解释,题目过水 Code: #include<cstdio> #include<cmath> #include<algorithm> using namespac ...

  10. 路飞学城Python-Day37

    36-多表查询练习 37-权限管理 1.创建账号 本地账号 create user 'panda' @ 'loacalhost' inentified by'123' 远程账号 create user ...