- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何在arm平台上运行Jetty5(包含移植jamvmclasspath过程)
如何在arm平台上运行Jetty5(包含移植jamvm + classpath过程)
Jetty虽然是Java编写的程序,可以跨平台使用,但需要java虚拟机来启动,而java虚拟机并不是跨平台的,要重新寻找一个能在linux系统中使用且占用空间尽可能小的java虚拟机。由于arm只提供最多52M的空间,所以不得不排除我们最常用的sun公司的jre,因为它的安装目录达到134M,大大超过可用空间,裁剪工作也不太容易。
经过查找资料,基本确定以下几种方案:
1)CVM + jetty5
SUN公司的J2ME是专为移动设备设计的,在移动通信设备上已经有广泛的应用,很适合在嵌入式中使用。CVM是一个具有完整的J2SE L3 VM支持能力的Java虚拟机,但又比标准的J2SE VM小。作为一个全功能的Java虚拟机,CVM几乎支持J2SE VM的所有先进特性,包括最底层的调错处理和本地语言接口。
2)Android + i-jetty
i-jetty是google公司基于jetty开发的运行在Android平台上的web容器,使手机也能搭建web服务。
3)Jamvm + GNU classpath + jetty5
Jamvm是一个c语言编写的开源的java虚拟机,它使用GNU classpath作为java类库。
首先采用第一种方案,具体操作过程见我的另一篇文章,这里只想说明结果。在对arm平台的CVM进行测试后发现,自带的HelloWorld和Test程序输出结果正常,但是启动jetty就会出现java.lang.UnsatisfiedLinkError异常,根据出错提示查看类库确实缺少很多类。后来使用裁剪的rt.jar仍然出现异常,看来CVM只适合小应用程序,对jetty这种比较大型的网络程序不太适合。
第二种方案没有过多去研究就否定了,我们的arm板运行的是linux,不可能更换成Android,如果想要使用i-jetty就得安装Android模拟器,可是该模拟机占用空间不小,也就没有花费太长时间去尝试。
第三种方案是研究时间最长,最有可能实现的方案了。虽然arm板上已有linux,但由于硬件限制不能在其上编译程序,所以还要准备其他的主机来完成编译工作,然后再将文件复制到arm板上。起先使用同事给我的Redhat Linux虚拟镜像,但是无论怎样编译classpath都编译不过。网上查找了很多有关这方面的资料,都没有人在Redhat下编译jamvm + classpath成功的例子,倒是在Ubuntu下成功过。于是自己在VMware中安装了Ubuntu 8.04服务器版的虚拟镜像(可从项目服务器下载),经过几天时间的编译、调错,终于找出能够编译成功的版本组合。
下面主要讲解的编译环境和操作过程就是基于第三种方案jamvm + GNU classpath。
编译环境及工具
Ubuntu 8.04虚拟镜像
项目服务器上的镜像,已安装了编译所需的其他工具如gcc、zlib、gcj、ecj等, 如果使用其他Ubuntu版本,需在编译时根据提示安装相应的程序。
Arm交叉编译链 4.3.2
提供的虚拟镜像中已经安装好,不需再安装,用来编译arm平台上运行的c和c++程序。
GNU Classpath 0.93
Jamvm使用的java类库,需要交叉编译。
Jamvm 1.5.1
一个开源的java虚拟机,需要交叉编译。
Jetty 5.1.12
Java编写的开源web容器,不需要交叉编译。
我们大部分工作都是在虚拟机中完成的,包括编译、打包、测试等等,虽然在arm上运行和虚拟机上运行结果有可能不尽相同,但经过我的运行测试发现,在arm上运行不了而出错的话,在虚拟机中运行出现同样的错误,所以一般我都会在虚拟机中调试好,程序能够运行再放到arm板,这样成功率更大。
工作目录 \home\kiki\work
Arm交叉编译链、GNU Classpath、jamvm和jetty5源程序都存放在work工作目录下,环境变量中需指定arm交叉编译链的路径。
目标目录 \tmp
为了能与arm平台的目标目录相同,使用tmp文件夹作为编译的目标文件夹。用来存放GNU Classpath和jamvm编译后的文件,需要在configure时指定目标路径。
Classpath 0.9.3 + jamvm 1.5.1 这是我测试过,能编译成功的版本组合,但可能并不是唯一的。由于操作系统和安装软件不全的关系,在别人的Ubuntu上匹配的版本组合在我这里却不行,可是公司网
您可能关注的文档
- 华润啤酒-初尝“整合”滋味.doc
- 单元1.11%20楼宇及楼面.doc
- 单片机内存分配.doc
- 单片机定时器做时钟程序.doc
- 单片机液晶1602-24C02时钟.doc
- 单片机远程控制程序.doc
- 南京1912街区特色店的特色.doc
- 南开13春学期《新闻评论》在线作业.doc
- 卫浴间装修做好三防_装修知识_装修_和家装修家居网.doc
- 历届十大劲歌金曲.doc
- 白天晚上教学课件.ppt
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题带答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解一套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及完整答案详解1套.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及参考答案详解1套.docx
- 2025年山东菏泽市事业单位招聘急需紧缺岗位目录(第一批)笔试模拟试题参考答案详解.docx
- 2025年山东菏泽市牡丹区中医医院引进急需紧缺专业技术人才30人笔试模拟试题及答案详解1套.docx
- 画西瓜教学课件.ppt
最近下载
- 2025广西南宁市交通运输综合行政执法支队招聘编外聘用人员5人备考试题及答案解析.docx VIP
- 青少年航天知识竞赛题库及答案.docx
- 环氧地坪施工工艺流程.docx VIP
- DB 34T 2752-2016 用人单位职业病危害现状评价导则.docx VIP
- 2025年高考全国1卷读后续写讲评课件 -2026届高考英语一轮复习专项.pptx
- MiniMk8调试与接线资料.pdf VIP
- 五菱宏光MINIEV说明书.docx VIP
- 2024初中物理教师进城考试模拟试卷及参考答案.pdf VIP
- 秦-使用手册-20131215.pdf VIP
- 四库全书基本概念系列文库:遵义府志.pdf VIP
文档评论(0)