zoukankan      html  css  js  c++  java
  • 极路由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编译器

  • 相关阅读:
    rsync+inotify实现实时同步案例
    Redis安装笔记
    监控软件munin安装设置
    Let’s Encrypt Wildcard 免费泛域名SSL证书获取安装
    [转载]真正的inotify+rsync实时同步 彻底告别同步慢
    PAT L1-009 N个数求和(运用GCD进行通分)
    文件的上传下载
    关系型数据库 VS 非关系型数据库
    python的局部变量,全局变量,类变量,实例变量
    Python 常用模块大全(整理)
  • 原文地址:https://www.cnblogs.com/lanhj/p/8205709.html
Copyright © 2011-2022 走看看