搜索
bottom↓
回复: 238
打印 上一主题 下一主题

NanoVM——AVR上的JAVA虚拟机 重量级酷贴

[复制链接]

出0入0汤圆

跳转到指定楼层
发表于 2007-11-26 13:53:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我不大会写文章,首先还是请大家见谅  : )

前言
大约两年前,我在这里看到有个帖子介绍一个叫做NanoVM(http://www.harbaum.org/till/nanovm/)的项目,它是在AVR上实现了一个简单的JAVA虚拟机。由于我对JAVA很感兴趣,所以极度关注。于是我啃了半个月的馒头,省下一百多的生活费,在OurAvr上买了套M16的最小系统板,正式宣告向JAVA更深领域进军!沮丧的是,我那时才接触到单片机,根本搞不清东南西北,直接死在Make前面,横尸遍野……当然我的热情丝毫未见减,经过一个多月的摸索,对AVR的开发流程和方法有了一个整体的了解,已经能成功的编译出来了!立即下了个自带的LcdDemo进去,哇,成功的运行起来了,虽然显示位置上有些错误,但还是让我兴奋得一夜未眠。什么?让我接着在这上面接着搞开发?别搞笑了,我连它的代码都看不懂,怎么驾驭它呢?
时光飞逝,这两年期间,积累了很多。特别是一年前搞(抄袭?)了叫做JOP(Java优化处理器)的项目,它直接用FPGA搭建了一个JAVA处理器,直接处理JAVA指令码,JAVA Virtual Machine在这应该叫JAVA Real Machine了吧,哈哈~这个项目让我对JAVA虚拟机有了非常理性的认识。还有今年,项目需要,我在ARM9+Linux的环境下,移植了JVM,这有让我对从另一个侧面学习到了JAVA虚拟机的实现,此外让我和Linux有了近距离的接触。
闲下来了一个星期,重拾NanoVM,有了两年的积累,现在看NanoVM格外亲切(汗……),把它的源文件看了一遍,作者(Till Harbaum)功力不浅,它他的代码相当舒服。好,说干就干,我为NanoVM增加了DS1302的本地方法,功夫不负有心人,熬了个通宵,终于成功了……

What is JAVA?
JAVA对大家来说,只不过是一门高级编程语言(Programming Language),但这并不是JAVA的全部,JAVA之所以优秀的原因,是因为它有一个强大的虚拟机支持。好似JAVA虚拟机是根,JAVA编程语言是叶,根繁才能叶茂;而对于大树下乘凉的人来说叶茂就行,而我更愿意把土刨开,看看它的根。本文研究的重点,也是JAVA虚拟机的实现。

What is NanoVM?
首先请大家明确,不同于C或Basic等,NanoVM不是一个JAVA编译器!我们还是用SUN提供的标准的编译器javac,但我们要让生成.class文件在AVR中运行!
大家回想一下为什么JAVA号称“一处编译,到处运行”?这是因为编译出来的文件是对应于JAVA虚拟机的,和各不同的处理器无关,只有在这个处理器上实现JAVA虚拟机,那么这个JAVA程序就能运行。JAVA虚拟机的作用相当于际时链接.class文件。JAVA就不存在像ARM那样交叉编译的概念了。NanoVM的目的正是于此,让跨平台的JAVA跨到AVR上。
当然JAVA虚拟机的设计是按32位或64位处理器来的,AVR的资源实在有限,不能完整实现JAVA虚拟机规范,实际使用的可行性也不大。我觉得它的意义不在于此,它让我们从AVR对角度认识JAVA虚拟机的实现机制。

NanoVM的运行
不同于一般,我们编程(Java)所生成的程序不下到Flash Rom里,而是下到了EEPROM中。那Flash里的是什么呢?这肯定是JAVA虚拟机(即NanoVM)了,上电后JAVA虚拟机开始运行,读取EEPROM中的JAVA程序并且执行。这看似繁琐的过程也是JAVA虚拟机魅力所在。借个官方的图说明这个问题。

但正如上所述,AVR的资源不足,所以EEPROM保存的并不是.class文件。这又是问什么呢?这需要读者对class文件结构有一定了解。class文件不仅仅包含了JAVA虚拟机的指令码,更多的是譬如JAVA虚拟机版本号、各种常量(如类名方法名等等)和、超类(父类)、接口(Interfaces)、字段(fields)和变量(attributes)等等信息,一个完整的JAVA程序是由多个class文件构成的,AVR的EEPROM中不可能构建一个文件系统,所以把各个class文件结合在一起(这个过程称之为装载和连接)生成最终JAVA虚拟机指令码的工作只能交给有文件系统的OS(Windows?Linux?)来完成,NanoVM中有个专门的工具叫NanoVMTool担以此任。NanoVMTool同样是用JAVA写的,你能在Windows或Linux(或……)下应用自如。

实例
我不是光说不练的那种人(!),下面就引领大家在AVR上运行第一个JAVA程序。
1.安装JDK
废话,搞JAVA开发不安装JAVA开发环境怎么行!你可以到官网(java.sun.com)下个j2se的开发包,嫌速度慢的话可以到各大软件站下载,这东西遍地都是……NanoVM虽然没对JAVA版本有要求,但还是建议用J2SE 1.4的版本,J2SE 1.4比较稳定,最新的J2SE 5和J2SE 6在JAVA语法、class文件结构和AVA虚拟机有细微的变动。似乎NanoVM还没跟上这些变动,当然NanoVM也不对这些变动敏感(哪那么多废话,骗稿费啊,找扁!)。
2.下载NanoVM(已上传)
你可以从sourceforge(http://sourceforge.net/project/showfiles.php?group_id=181239&package_id=209853)下载最新的代码,源码包中有编译好的.hex文件,你不想自己编译的话可以直接用。
3.安装rxtx(已上传)
我们要通过NanoVMTool用串口把我们的JAVA程序下到AVR的EEPROM中(你也可以使用ISP等方式下载,只是我觉得有些麻烦),出于安全性和跨平台的考虑,JAVA是不能直接访问硬件的,但SUN对此定义了标准,由一个叫RXTX(http://www.rxtx.org/)的组织实现,大家可以根据里面Readme中的说明安装,就拷贝几个文件,这里从略。
4.HelloWorld
写一个最简单的Hello.java:
import nanovm.io.*;
import nanovm.avr.*;
class HelloWorld {
  public static void main(String[] args) {
    //向串口写"Hello World!"
    System.out.println("Hello World!");
   
    //向LCD写"Hello World!"。如果你编译NanoVM时在config.h
    //中配置了LCD的话,否则会抛出异常,请去掉下面语句
    Lcd.clear();
    Lcd.gotoYX(0, 0);
    Lcd.print("Hello World!");
  }
}
把它保存在java\examples\目录下,以方便使用。
5.编译NanoVM
在NanoVM的vm\build\下有不同处理器的编译脚本(Makefile),如avr_mega32_lcd、avr_mega8和avr_mega168等等。这里还有很多以AVR为控制器的(玩具)机器人的脚本,如(乐高的)ctbot和nibo,开来作者更愿意把NanoVM用在玩具机器人上 ^_^
可以把Makefile中的DEFAULT_FILE改成上面Hello,之后make编译,会得到NanoVM.hex和NanoVM_eeprom.hex两个文件,前者是NanoVM虚拟机,下到Flash中,后者是上面所写的JAVA程序,下到EEPROM中。现在就运行吧,有结果没?
6.使用NanoVMTool
当你重新写一个JAVA程序时,是不是用在make一遍?肯定没那么复杂,其实上面make时调用的是NanoVMTool,NanoVMTool能完成装载、连接和下载的功能,你可以运行它来看它的命令帮助。编译还是要交给javac了,如果你还不会编译一个JAVA程序的话,请自行参考相关教程,这里就不展开讲啦。当NanoVMTool装载和连接后,就准备向AVR下载了,把你的AVR通过串口连上PC,重启(复位)AVR,就开始自动下载了,下载完成后自动运行。
此外NanoVM还有Eclips的插件,真正做到集成开发,不用你再敲命令了。

展望
前久坛友推荐的美国以太网比赛,我申请到了套件,准备吧他用到NanoVM之上,实现java.net.*中几个基本的类,再实现javax.servlet.*中的部分类,做一个MiniJSP(Java Server Pages),AVR上跑动态网页服务器,酷吧,哈哈。现在手头上只有M16,空间已经满了,暂告一段落,下步准备用M128(呜呜呜呜,又要啃馒头了),外扩RAM和EEPROM,就该够用了。
如果资源和精力也许的话,我还打算实现java.sql.*,做个MiniBBS。想过OurAvr是架设在AVR上的吗?阿莫下次换服务器时考虑一下我这个天方夜谭的方案吧,搞它十几片AVR单片机做并行处理,慢就慢点,不在乎,玩的就是心跳,酷毙了!

结束语
NanoVM在AVR上实现了一个简单的JAVA虚拟机,对大家理解虚拟机的实现由很大启迪,有兴趣的朋友可以试试,我也在学习探索阶段,大家多多交流,呵呵。
第一次写那么长的东西,估计我毕业论文也不会写那么多。文章从头到尾狗屁不通,希望各路英雄拍砖时手下留情,不要打脸!
最后要感谢我GF对我这两年来休学闭门搞技术的支持;还要感谢OurAvr这个平台,让我学到很多很多……

声明
1.本文作者有对本文进一步修正完善更新的权力。
2.本文首发OurDev.cn,转载务必保持完整性。
3.加酷和回帖一样,是种高尚的美德,哈哈~~~


附:
NanoVM最新公版源代码
点击此处下载nanovm-20070707(文件大小:991K)
rxtx--java串口类
点击此处下载rxtx-2.1-7-bins-r2(文件大小:596K)

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

238
发表于 2018-1-4 21:39:08 | 只看该作者
现在才看到,这个帖子确实NB啊。

出0入0汤圆

237
发表于 2014-5-13 20:19:32 | 只看该作者
值得发扬!!!关注

出0入0汤圆

236
发表于 2014-5-13 19:38:58 | 只看该作者
现在还有人用nanoVM吗?
我单片机上是烧好了,可是不知道怎么搞上面的程序呢,
也就是那个tool不知道怎么用,看了下之前有人说那个tool需要自己编译
而且需要config的文件是跟编译AVR上面的配置一样,
到底是为什么呢?如果说只是串口配置的问题,可以理解,如果说跟class有关
那就太糟糕了,我看里面有的native_impl.c 里面有个native_invoke
然后判断他的class ID 然后自己实现的native_xxx就要加这些ID
我想问一下,NanoVMTool做转换格式的话,跟这些ID有关吗?
NanoVMTool是不是在转换的时候把你编译的库换成这个ID?然后连接在一起,目的是减少程序的空间?
那么如果,我今天编了一个avr,里面有10个LED,
明天,我又编了一个多了PWM的,那么我在是不是还在在重新编一次nanoVMTool呢?
如果是的话,就完全没意义了

我们能不能让单片机跑没转换过格式的java啊?有没有知道的高手说说?

出0入0汤圆

235
发表于 2014-4-22 20:34:43 | 只看该作者
支持一下 楼主

出0入0汤圆

234
发表于 2014-4-22 20:11:55 | 只看该作者
本帖最后由 cndavy 于 2014-4-22 20:24 编辑

mark javavm
7年前就有如此精彩vm
现在的Arduino类似java加c

出0入0汤圆

233
发表于 2014-4-17 13:20:57 | 只看该作者
大神,膜拜

出0入0汤圆

232
发表于 2014-4-17 00:06:47 | 只看该作者
mark.            

出0入0汤圆

231
发表于 2014-2-4 10:46:03 | 只看该作者
移植到STM32上如何呢?

出0入0汤圆

230
发表于 2014-2-3 22:25:53 | 只看该作者
楼主 这个项目还在进行吗

出0入0汤圆

229
发表于 2012-7-21 08:09:24 | 只看该作者
mark!!!!!!!!!!!

出0入0汤圆

228
发表于 2012-7-20 22:56:17 | 只看该作者
不错 要是现在的stm32也能跑的话 就好了 可惜没那技术移植

出0入0汤圆

227
发表于 2012-7-20 22:31:10 | 只看该作者
mark~~~~~~~~~~~~~~~~~~~~~~~~~~~~

出0入0汤圆

226
发表于 2011-10-11 14:56:01 | 只看该作者
mark!

出0入0汤圆

225
发表于 2011-10-11 14:36:51 | 只看该作者
mark

出0入0汤圆

224
发表于 2011-9-26 22:08:32 | 只看该作者
感謝分享

出0入0汤圆

223
发表于 2011-9-26 18:49:36 | 只看该作者
牛啊牛啊

出0入0汤圆

222
发表于 2011-9-26 16:47:38 | 只看该作者
cool 就一个字

出0入0汤圆

221
发表于 2011-9-26 12:38:28 | 只看该作者
在单片机里用VM,还是Lua或python的实用点。

By the way,好像也有人实现了AVR的解释器:amforth

出0入0汤圆

220
发表于 2011-9-26 11:33:18 | 只看该作者
关注!

出0入0汤圆

219
发表于 2011-9-25 13:27:02 | 只看该作者
怎么什么样的牛人都有啊!

出0入0汤圆

218
发表于 2011-9-25 13:26:49 | 只看该作者
这里牛人太多了!

出0入0汤圆

217
发表于 2011-9-25 12:39:15 | 只看该作者
怎一个牛字了得

出0入13汤圆

216
发表于 2011-6-27 08:50:17 | 只看该作者
"牛"啊,多多学习

出0入0汤圆

215
发表于 2011-6-27 00:53:10 | 只看该作者

出0入0汤圆

214
发表于 2011-6-27 00:02:43 | 只看该作者
大二看,正学16中

出0入0汤圆

213
发表于 2011-6-25 13:46:16 | 只看该作者
长知识了。

出0入0汤圆

212
发表于 2011-6-15 00:04:02 | 只看该作者
酷!

出0入0汤圆

211
发表于 2011-2-26 12:32:38 | 只看该作者
帅气,up

出0入0汤圆

210
发表于 2011-2-25 17:35:36 | 只看该作者
牛!!!

出0入0汤圆

209
发表于 2011-2-20 13:44:11 | 只看该作者
avr上竟然跑java,酷

出0入0汤圆

208
发表于 2011-1-7 12:18:13 | 只看该作者

出0入0汤圆

207
发表于 2011-1-4 17:43:41 | 只看该作者
好西好!

出0入59汤圆

206
发表于 2011-1-4 16:23:29 | 只看该作者
留名~

出0入0汤圆

205
发表于 2011-1-4 15:29:58 | 只看该作者
MARK

出0入0汤圆

204
发表于 2011-1-4 00:18:56 | 只看该作者
感觉JAVA就是牺牲效率追求通用性,而单片机这段资源确实也不适合,个人认为放到ARM什么的还有点意义,反正做上网设备也不差增加10多元这么的成本,毕竟效率和功能会比在单片上搞要高多了

出0入0汤圆

203
发表于 2011-1-3 23:37:10 | 只看该作者
mark

出0入0汤圆

202
发表于 2010-11-30 21:47:39 | 只看该作者
我以前也稍有接触过JAVA,不过不是很清楚JVM是否能脱离操作系统的支持。这个NanoVM似乎是直接在AVR里运行的,不需要其它诸如Linux等操作系统的支持,如果确实可以直接在AVR里运行的话,再加入更多JAVA基类和GUI,把它移植到STM32平台,那就更符合我个人的胃口了,呵呵…

出0入0汤圆

201
发表于 2010-10-14 13:21:37 | 只看该作者
mark

出0入0汤圆

200
发表于 2010-10-13 23:42:40 | 只看该作者
了解了,多谢楼主无私分享!

出0入0汤圆

199
发表于 2010-10-4 14:21:39 | 只看该作者
回复【170楼】fifthboy  
赞一个。
我一直认为嵌入式系统软件追求的是简洁,高效。
java虚拟机应用在嵌入式系统上,增加了软件复杂度,背离嵌入式软件的设计原则。

-----------------------------------------------------------------------

同感
java的优势是跨平台,嵌入式的先天性质却是定制

出0入264汤圆

198
发表于 2010-10-4 13:49:08 | 只看该作者
学习。

出0入0汤圆

197
发表于 2010-10-4 13:08:52 | 只看该作者
大一看   现在大三再看  ......................

出0入0汤圆

196
发表于 2010-10-3 10:26:45 | 只看该作者
先崇拜一下!

出0入0汤圆

195
发表于 2010-10-3 10:18:32 | 只看该作者
mark

出0入0汤圆

194
发表于 2010-10-3 09:26:36 | 只看该作者
LZ太强大鸟,哈哈

出0入0汤圆

193
发表于 2010-9-26 09:04:07 | 只看该作者
markkkkk

出0入0汤圆

192
发表于 2010-9-26 00:31:53 | 只看该作者
mark

出0入0汤圆

191
发表于 2010-9-25 14:07:36 | 只看该作者
mark

出0入0汤圆

190
发表于 2010-9-25 11:20:04 | 只看该作者

出0入0汤圆

189
发表于 2010-9-25 10:59:22 | 只看该作者
为了大家的访问速度 avr做服务器就免了吧。。。。

出0入0汤圆

188
发表于 2010-9-25 10:36:29 | 只看该作者
mark

出0入0汤圆

187
发表于 2010-9-9 00:23:25 | 只看该作者
嵌入式里面搞JAVA虚拟机的意义有多大?这个问题相当值得商榷。
我认为应该不同情况区别对待,比如如果搞控制或测量仪器,用JAVA计算虚拟机无异于脱裤放屁,可是如果要用在于Intenet互联的设备上则意义非凡。比如你家的马桶有个IP,可以接入互联网,那就有用了;直接把宽带网的网线插到马桶上就行了。你不必为了马桶再搞个上位机再经过家庭网关或路由器什么的,你也不可能随身带个U盘,在外地需要看你家马桶工作的情况时把软件装到人家的电脑上;只要有浏览器(不管是电脑、上网本、手机),就能看到你家的马桶现在的工作状态(动态网页)。

支持楼主!

出0入0汤圆

186
发表于 2010-9-8 23:52:16 | 只看该作者
mark

出0入0汤圆

185
发表于 2010-9-8 22:59:57 | 只看该作者
三年前的帖子,依然很强大……

出0入0汤圆

184
发表于 2010-9-8 10:43:39 | 只看该作者
楼主湘大的,在读不,有机会去请教啊

出0入0汤圆

183
发表于 2010-9-3 17:24:31 | 只看该作者
mark

出0入0汤圆

182
发表于 2010-9-3 16:22:52 | 只看该作者
mark

出0入0汤圆

181
发表于 2010-9-2 22:27:14 | 只看该作者
cool

出0入0汤圆

180
发表于 2010-9-2 22:02:36 | 只看该作者
这坟挖得好,你写帖子时我还没用过单片机呢,不挖真就错过这绝好风景了。

出0入0汤圆

179
发表于 2010-9-2 17:28:48 | 只看该作者
很好,我是搞C++的,但对于java非常有好感。

出0入0汤圆

178
发表于 2010-8-29 19:54:08 | 只看该作者
mark

出0入0汤圆

177
发表于 2010-8-3 21:27:57 | 只看该作者
留着以后看看。

出0入0汤圆

176
发表于 2010-8-3 20:32:40 | 只看该作者
mark

出0入0汤圆

175
发表于 2010-8-3 20:01:10 | 只看该作者
玩的就是心跳!顶

出0入0汤圆

174
发表于 2010-6-17 11:38:57 | 只看该作者
mark

出0入0汤圆

173
发表于 2010-6-16 23:21:58 | 只看该作者
mark!

出0入0汤圆

172
发表于 2010-6-16 22:59:08 | 只看该作者
LZ幸会幸会,又碰到了熟人

出0入0汤圆

171
发表于 2010-6-16 20:19:55 | 只看该作者
关注

出0入0汤圆

170
发表于 2010-6-16 19:54:39 | 只看该作者
赞一个。
我一直认为嵌入式系统软件追求的是简洁,高效。
JAVA虚拟机应用在嵌入式系统上,增加了软件复杂度,背离嵌入式软件的设计原则。

出145入215汤圆

169
发表于 2010-6-16 15:58:39 | 只看该作者
MARK

出0入0汤圆

168
发表于 2010-6-4 08:25:17 | 只看该作者
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
顶顶顶    顶顶顶顶    顶顶顶顶    顶顶顶    顶顶顶顶顶
顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶  顶顶顶顶
顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶顶顶
顶顶  顶顶顶顶顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶顶顶
顶顶  顶顶顶顶顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶顶顶
顶顶  顶   顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶顶顶
顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶顶顶
顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶顶  顶  顶顶顶顶
顶顶顶     顶顶顶    顶顶顶顶    顶顶顶    顶顶顶顶顶
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

出0入0汤圆

167
发表于 2010-6-4 02:06:23 | 只看该作者
mark!谢谢!

出0入0汤圆

166
发表于 2010-6-4 00:45:02 | 只看该作者
JAVA 工具书
学习使用JAVA必备,主要查看api目录下面的文档,已翻译成中文(非本人翻译)。
JDKTM 6 Documentationourdev_559421.zip(文件大小:48.79M) (原文件名:JDK6.zip)

出0入0汤圆

165
发表于 2009-10-23 22:21:10 | 只看该作者
向楼主学习!!

出0入0汤圆

164
发表于 2009-10-15 10:49:03 | 只看该作者
MARK

出0入0汤圆

163
发表于 2009-10-13 16:54:55 | 只看该作者
我也没看懂,但是感觉搂主的想法绝对是突破,我想这就是创新把

出0入0汤圆

162
发表于 2009-10-13 16:32:29 | 只看该作者
Mark!

出0入0汤圆

161
发表于 2009-10-13 16:26:35 | 只看该作者
看不懂  看懂了看帖回贴。^_^

出0入0汤圆

160
发表于 2009-10-13 15:37:23 | 只看该作者
mark

出0入0汤圆

159
发表于 2009-10-11 12:19:23 | 只看该作者
拜倒啦

出0入0汤圆

158
发表于 2009-9-20 13:40:11 | 只看该作者
mark1

出0入0汤圆

157
发表于 2009-9-19 01:04:59 | 只看该作者
mark

出0入0汤圆

156
发表于 2009-9-18 21:18:31 | 只看该作者
mark

出0入0汤圆

155
发表于 2009-8-30 15:53:05 | 只看该作者
Sun网站有Java的嵌入式版本叫什么MDIP 版本的虚拟机源代码下载 忘记名字了 很容易编译到其他处理器上运行 反正我是在ARM9上Linux环境运行过Java程序,移植相当简单。想偷懒的可以尝试一下!

名字好象叫
j2me_cldc

出0入0汤圆

154
发表于 2009-8-30 11:22:51 | 只看该作者
mark

出0入0汤圆

153
发表于 2009-8-29 22:36:54 | 只看该作者
这么好的技术,怎么才看到啊?

出0入0汤圆

152
发表于 2009-8-29 21:50:52 | 只看该作者
闭关两年搞技术!!!高手中的高手!

出0入0汤圆

151
发表于 2009-8-28 13:41:18 | 只看该作者

出0入0汤圆

150
发表于 2009-8-20 18:58:10 | 只看该作者
第一次听说java也可以在这上面跑,强就一个字

出0入0汤圆

149
发表于 2009-8-20 18:00:38 | 只看该作者
mark,学习了

出0入0汤圆

148
发表于 2009-8-19 22:44:41 | 只看该作者
都快两年了!!!
震撼~~~

出0入4汤圆

147
发表于 2009-7-18 13:36:47 | 只看该作者
重量级酷贴

出0入0汤圆

146
发表于 2009-7-18 11:32:00 | 只看该作者
开眼界了

出0入0汤圆

145
发表于 2009-7-18 10:50:13 | 只看该作者
IAVA就是和平台无关,这是他的优点和唯一能和C#相提并论的理由。原则上讲,只要是计算机,就可运行JAVA 具体实现,方法很多。最初,SUN公司开发它,目的就是在家电上做嵌入式运用,后来WEB的快速发展,使得它有了更加适合的运用场合。全世界的程序员都在发展它,现在的JAVA变化很大,做嵌入式,它的缺点也有很多,主要是需要做解释的JVM虚拟机,使得系统资源消耗大,就目前的情况看,效果并不是很理想,我本人也非常喜欢JAVA
  LZ的思路值得借鉴,谢谢!

出0入0汤圆

144
发表于 2009-7-17 23:16:46 | 只看该作者
mark!

出0入0汤圆

143
发表于 2009-7-17 17:04:42 | 只看该作者
LZ,能不能把J2SE的安装包也贴上来下,实在是找不到下载的

出0入0汤圆

142
发表于 2009-7-17 12:27:18 | 只看该作者
菜鸟向大虾致敬,希望我也有一天成为虾米。

出0入0汤圆

141
发表于 2009-7-17 01:01:31 | 只看该作者
ndust这会儿才jh到这个帖子,反应有点迟钝啊,呵呵~~

出0入0汤圆

140
 楼主| 发表于 2009-7-17 00:25:30 | 只看该作者
又被挖坟了

出0入0汤圆

139
发表于 2009-7-16 23:53:04 | 只看该作者
jh
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 21:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表