极路由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, 具体的方法可 ...
随机推荐
- 洛谷—— P1204 [USACO1.2]挤牛奶Milking Cows
https://www.luogu.org/problem/show?pid=1204 题目描述 三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶.第一个农民在300秒(从5点开始计时)给他的牛挤奶, ...
- php PDO连接mysql
近期在linux装了新的环境.php5.6+mysql5.5+nginx. 然后用原来的mysql链接数据库出现的错误. 原因就是说连接数据库的方法太旧.建议我用mysqli和PDO来连接数据库. 好 ...
- Nginx 做系统的前端反向proxy
Nginx是一款很优秀的基于event的webserver.吞吐量大.占用资源少,只是文档就很让人郁闷了,免费的Nginx和收费的Nginx+的文档共用一份,配置完之后才发现免费的Nginx启动某些命 ...
- ios假设写一个提示带动画的View,能够来引导用户行为
先上图: 这个UIView能够这样写: -(id)initWithFrame:(CGRect)frame backImage:(UIImage*)image msgStr:(NSString*)txt ...
- Android开发之大位图压缩水印处理
我们在发微博或者csdn博文的时候都能够给图片加上一个水印.一个独立的标识,那是怎么实现的呢?先封装一个BitmapTools封装类.该类要解决的问题是一将突破存储至sdcard中,二给图片加上水印. ...
- [MySQL] 查询一段时间记录
24小时内记录(即86400秒) $sql="SELECT video_id,count(id)as n FROM `rec_down` WHERE UNIX_TIMESTAMP(NOW() ...
- 整理windows相关软件的环境变量
java: JAVA_HOME [安装java的home目录] PATH [在最后添加] ;%JAVA_HOME%\bin; CLASSPATH [文本框的起始位 ...
- HTML5中canvas介绍
1.什么是Canvas canvas 是 HTML5 提供的一个用于展示绘图效果的标签 canvas 提供了一个空白的图形区域,可以使用特定的JavaScript API来绘画图形(canvas 2D ...
- 配置ip地址四种方法,方便学习linux的朋友
(1)Ifconfig命令 第一种使用ifconfig命令配置网卡的ip地址.此命令通常用来零时的测试用,计算机启动后 ip地址的配置将自动失效.具体用法如下.Ipconfig ethx ip ...
- Tomcat转jboss踩的那些坑
问题背景 今天发版本,是一个httpclient的跳转(由于公司网络原因,所以对外网的访问都经过这个代理服务出去). 问题原因 之前的开发一直在window系统的tomcat服务器上进行的,对jbos ...