极路由4pro安装java(Jamvm 2.0.0 + gnu classpath 0.9.8)
首先试了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)的更多相关文章
- 极路由4pro交叉编译c、c++的代码
首先在官方文档中下载SDK 极路由4pro是mtmips架构,即32位mips,小端的,因此下载这个 防止官方的下载链接失效,特意上传到百度网盘: 链接:https://pan.baidu.com/s ...
- 极路由4pro(HC5962)安装python
基本配置 其实极路由4.极路由4 pro.极路由B70都是一个型号的(HC5962) CPU:MT7621AT + MT7612EN + 7603EN 内存:256MB DDR3 RAM 闪存:128 ...
- 极路由4pro(HC5962)设置阿里云DDNS
v2ex有个帖子说用Dnspod的API可以一行搞定,不过我既然买的是阿里云的域名还是想尽量用阿里云的API,感觉比较安全,另外修改解析记录后也会自动发邮件通知,所以还是调用阿里云的API吧.阿里云的 ...
- 极路由hc5661安装tcpdump
原先有个tcpdump的插件,但是现在已经下架了. 条件: 已root的极1s HC5661 - 1.4.11.21001s 步骤: ssh进去后,opkg install http://downlo ...
- 安装java时,配置环境变量classpath的作用
想必大家在安装javaSE或其它版本时会注意到,在配置环境变量path之后,还需要新建一个名为CLASSPATH,变量值设为 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt. ...
- CentOS7.0 安装JAVA周围环境
CentOS7.0 安装JAVA周围环境 安装JDK 1.配置JDK环境变量 把下载好的JDK(jdk-7u75-linux-x64.gz)文件上传到 Reg: /home/p2pweb/java/ ...
- 无法安装Java,以下开关中存在错误:“0”
无法安装Java,以下开关中存在错误:“0”:. 解决方法:以管理员运行
- linux(centos8):安装java jdk 14 (java 14.0.2)
一,下载jdk14 官方网站: https://www.oracle.com/java/ 下载页面: https://www.oracle.com/cn/java/technologies/javas ...
- 极路由2(极贰)ROOT并刷了OpenWrt
绕过官方的ROOT 查了一下root教程, 如果还需要保留保修, 则需要自己想办法回退版本, 下载搜狐插件到sd卡, 找个linux系统修改sd卡上程序的执行权限, 然后才能开启ssh, 具体的方法可 ...
随机推荐
- Weblogic常用监控指标
http://blog.csdn.net/konglongaa/article/details/53897562
- CAD教程-AL对其命令
AL可以实现不规则的对其功能 1.第一步按下AL,按下Enter 2.选择第一个源点 3.选择第一个目标点 4.选择第二个源点 5.选择第二个目标点 6.按下Enter,完成移位
- 一点一点学架构(四)—Spring.NET错误Cannot Resolve Type……
背景 在搭建完项目框架之后,当我利用单元測试来測一条线时.出现了下面错误: Cannot resolve type[--]for object with name 'ButtonBll' define ...
- js面向对象编程: js类定义函数时prototype和this差别?
在面向对象编写js脚本时,定义实例方法主要有两种 例如以下: function ListCommon2(afirst) { var first=afirst; this.do1=function () ...
- Web前端开发实战2:二级下拉式菜单之JS实现
上一篇博文提到了二级下拉式菜单是用HTML和CSS实现的.我们这一篇来用JavaScript脚本实现下拉菜单的显 示和隐藏. 使用 JavaScript方法实现我们须要用的知识有: 1)JS事件:on ...
- HDU4763-Theme Section(KMP+二分)
Theme Section Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- Atom介绍和安装步骤
Atom是全然基于web技术开发而成的一款编辑器,其底层架构依赖于chromium,google chrome浏览器也是基于此.编辑器的每一个窗体都是本地渲染的web页面,而且其风格与时下流行的sub ...
- [iOS翻译]《iOS7 by Tutorials》在Xcode 5里使用单元測试(上)
简单介绍: 单元測试是软件开发的一个重要方面.毕竟,单元測试能够帮你找到bug和崩溃原因,而程序崩溃是Apple在审查时拒绝app上架的首要原因. 单元測试不是万能的,但Apple把它作为开发工具包的 ...
- Word技巧杂记(二)——批量修改修订格式并接受
今天的题目好奇怪啊,呵呵,起因如下: 今天老婆在修改论文,她的老板提出一个非常**的要求——把Word中所有修订后的文字用特殊的字体(蓝色)标出来,然后再接受修订.我勒个去,明明有修订后的模式啊,为什 ...
- 敏捷开发 —— TDD(测试驱动开发)
测试驱动开发 TDD(Test-Driven Development)是敏捷开发的一项核心实践,同时也是一种设计技术和方法. 既然是测试驱动,便是测试,测试用例先行: 首先编写好测试用例,期待值,实际 ...