休息一段时间

By , September 30, 2004 6:06 pm

从明天开始休假,10.01 — 10.17,然后到S 公司去报到。

假期里要做的事情:

1 睡几个大觉,好不容易有个假期啦。

2 要坚持去锻炼,西大操场,每天跑五到十圈,引体向上,举重,俯卧撑。

3 每天给咪咪做好吃的,早饭,午饭,晚饭,宵夜,三天以内不能够有重样的。咪
咪喜欢吃鱼和豆腐,多做点。

4 每天陪咪咪散步,看书,练习摇篮曲。过了十一以后如果有好天气的话,和咪咪
一起去植物园转转,换换新鲜空气。

5 给咪咪准备临产时的家当,包括衣服,洗漱用具,消毒棉垫,牙膏牙刷,餐具,
纸巾,拖鞋,记事本和笔,还有零食。

6 给小宝宝准备家当,该买的东西实在是太多啦,小床垫,小被子,小毛巾,小毯
子,小衣服,小帽子,小奶瓶,小奶嘴,温度计,水温计,吸鼻器,小尿布,小
玩具….哇哇,都数不过来啦,上同学在摇篮网的主页找了找,发现了一篇宝贝
文章,贴过来回头好好看看。


—–


2003年11月12日
产前准备全攻略

需要为宝宝准备的东西:
(所有东西可清洗消毒的要先清洗消毒)

一:尿布、衣物、被褥

1.尿布:商店有卖成包的纱布尿布,10块一包。初生儿要用最小码的,且要买柔软
的,不过洗多了就会很软。尿布的缺点是要经常换,不利宝宝睡眠,优点是透气。夏
天白天我只给宝宝穿短裤,尿湿就换裤子,更透气凉快。有妈咪把用过的帮宝适的芯
掏掉,剩其外壳固定尿布,透气又方便,商店卖的尿布包不透气,建议别用。

2.纸尿裤:晚上用,冬天或开空调的夏天也可以用,这样不会打扰宝宝的睡眠。喂
奶前换。注意防止尿布疹,一发现宝宝PP红就要擦些润肤露。我用帮宝适超薄干爽的,
另外妈咪宝贝、妙奇也不错。

3.隔尿垫(象浴巾那么大的那种):垫在宝宝身下,防止尿湿褥子。建议买2-3个,
便于替换,可用到1-2岁。冬天我全部用纸尿裤,所以夏天才用上隔尿垫,表层棉质底
层塑料尽量柔软。

4、衣服:夏天小短袖上衣+尿布,可以不穿裤子,或者穿连体短衣裤;冬天和尚服内
衣+连体长衣裤,冷的话外面再加外套。两三套就够了,宝宝长得很快,衣服可以现
买。有的宝宝6个月即可穿1岁衣服。能要到其他宝宝穿过的旧衣服更好,多次洗过更
柔软。商店卖的裤子一般皮筋都很紧勒到宝宝,需要换皮筋。宝宝的皮肤与身体体积
的比例,比大人的要大,所以冬天比大人怕冷,夏天比大人怕热,出生24小时内要注
意保暖。

5、袜子手套:冬天才用。现在的宝宝都比较胖,袜子经常勒出痕迹,要买弹性好宽松
的,尽量不用手套除非防止宝宝抓伤自己,手套要买薄的,让手多活动有利于智力发
育。

6、帽子:夏天用太阳帽,冬天用柔软棉毛的。各一顶即够。

7、被褥:有卖一套包括棉被褥子床围枕头。冬天可以穿睡袍,防止蹬被,宝宝又不会
钻到被子里窒息,夏天用一条浴巾盖住肚子即可。

8、枕头:为了宝宝头形好,可用枕头,但不要太高。

9、抱被、抱袋:初生儿冬天用。抱袋可当初生宝宝的睡袋,非常好。

10、床:有木头和金属的。木头的更好些。买床一般配蚊帐,夏天一般要用蚊帐。摇
篮式的床并不好,经常摇晃对宝宝大脑发育不好。

11、童车:宝宝可睡觉的,满月后早晨和傍晚可推宝宝出去晒太阳(不照正脸),有
利于宝宝钙的吸收和妈妈身体恢复。宝宝大了以后按需要可再买个小型只坐的。

12、护脐:保护宝宝肚脐,两个。

13、背带:不一定需要,但出门时用背带背宝宝可腾出双手拿其他东西。

14、小衣架、带夹子的圆形衣架。

15、小尿盆:给宝宝把尿用,也可直接抱宝宝到马桶把尿。

16、安全别针:大一些的好用。冬天可以用来包襁褓或固定被子。

二:洗护用品

1、洗澡液、洗头液:要买无泪配方的,我用施巴的。

2.润肤露:宝宝出门可以擦脸,PP有点红的时候可用来擦。

3、护臀霜:宝宝PP很红或出诊的时候擦。强生的不好,据说较好的有郁美净和“复方
磺胺氧化锌软膏”,俗名叫“双氧膏”,是广州何济公制药生产的。

4、润肤油:做抚触时用。

5.浴盆:一天洗澡一次,因为宝宝的新陈代谢很快,而且夏天有助于降温,还可以锻
炼宝宝的身体。一般宝宝都很喜欢洗澡。

6.浴网或浴床:我用的是浴网。用浴巾裹住宝宝的身体,抱着宝宝先洗脸和洗头,再
让他躺在上面洗身体,很方便。

7.纱布:洗脸一条大的,洗澡一条大的,洗PP几块小(可在换尿布或宝宝大便时用)。

8.大浴巾:洗澡前后包裹宝宝用。(最好大些,宝宝长的很快)

9、湿纸巾:擦宝宝PP,但太浪费。用纱布沾温水洗更好。

10、脸盆:一个大些洗宝宝衣服,一个洗宝宝PP,一个洗尿布。衣服尿布最好立刻洗,
没时间可备一个桶把尿布浸泡起来。可以用宝宝洗衣液和肥皂,不用洗衣粉。

11、指甲剪刀/钳:一般的指甲钳很不安全,弯曲型的指甲剪刀很好:贝亲,黄小鸭和
艾比熊都有。

12、75%酒精、棉签:清洗宝宝肚脐。(出院时医院有送)

13、块状棉球:洗澡时可擦PP柔嫩处和皮肤皱褶处,比如脖子。宝宝便后清洗也可以用。

14、洗澡水温计。

15、体温计。

16、痱子粉。

17、吸鼻器:可吸清鼻涕和块状的,要买反逆流的。

18、电动剪发器。

 

南下列车

By , September 29, 2004 6:04 am

大年三十,特快79次,北京西到武昌。


08:10  北京西

列车开动的时候,天还有点黑。尽管是大年三十,仍然加挂了两节客车,行李
架上塞满的大包小包,车厢里弥漫着一股馊袜子的味道。搭乘这一趟车的,大
都是在北京打工的农民,他们有的已经老迈,有的依然年轻,脸上却无一例外
的写满了苍苍和期待。是的,忙碌的整整一年,总算可以回家休息一阵子了,
怎么说也是件令人欢喜的事情。


09:36  保定

姗姗来迟的太阳出现在地平线上。路边只有光秃秃的树木,血红的阳光照在一
望无际的黄土地上,满目荒凉。


10:55  石家庄

一路上都是农田,冬天里没有什么庄稼,那些高高的坟墓便显得特别的突出起
来。满地里都是挑着担子背着孩子上坟的农家,隔着车窗听不见鞭炮的声响,
但还是能够远远的看见白酒洒在燃烧的纸钱上腾起的火团,还有炮竹炸响时候
的闪光和浓烟。大人们捧来土块压在坟头上 — 坟头垫高了,风水才会好,来
年才会有好收成,甚至会影响到子孙后代的前程。大一点的孩子也跟在大人的
后面忙活,小一点的孩子则眼巴巴的看着担子里的鸡蛋和肉 — 这虽然是献给
祖先的祭品,然而每次鞭炮声响过之后他们都可以分得一点点来吃。


12:26  邯郸

列车员推车餐车过来叫卖。一个荤菜,两个素菜,很硬的米饭,竟然要卖20块
钱。有几个乘客从座位上站起来问价,不过没有什么人买。推过去再推回来的
时候,变成15块。一个满脸尘灰的女孩,大概有七八岁的样子,看着即将离去
的餐车伸手轻轻的拉了拉她母亲的衣角,抬起头来仰望着母亲的眼睛,一脸马
上就要哭出来的样子。当母亲的深深地叹了口气,脱下鞋从里面掏出两张钞票
来地给乘务员。乘务员皱了皱眉头,指着餐车旁边的一个小盒子努了努嘴:你
就给我扔那里吧。

小女孩开心的打开饭盒,里面的饭菜却已经凉了。


13:05  安阳

自从进了河南,地平线上便开始出现些许绿色;到了安阳,更是可以看见大片
大片的菜地。铁道两侧时不时可以看见一些小的溪流,虽然背阴处还有尚未消
融的冰块,然而那跳跃的浪花总能够让仍感觉到一点暖意。

在安阳站开始有乘客搬了行李下车,他们大声的互相招呼着同伴,抑或是把没
有吃完的水果留给旁边座位上的乘客。


14:48  郑州

在路边看到一条标语:集体上访违法。那是一片旷野中一栋独立的矮小农房,
红砖上面刷了一道白石灰,大红的字。

想起前面路段的另外一条标语:不嫁流氓,不娶文盲。这字就刷在站台对面的
墙上,却记不起到底是哪个站了。


16:09  漯河

过了漯河,天色便开始暗了下来。暮色中看见一个农民挑着担子从田埂上疾步
走过。在田野的尽头,有几座冒着袅袅炊烟的农屋。


16:45  驻马店

列车在夜色里穿行,车厢里已经没有多少乘客了。已经坐了整整一天的车,剩
下的乘客都明显的流露出些倦意来。有的人趴在座位前面的小几上睡觉,有的
人默默地吸烟,更多的人则焦虑的看着窗外飞流而过的灯光。他们的心里,是
不是都盼着这列车开的更快一点呢?

车厢里静极了,没有什么人说话,只听见车轮碾过铁轨发出的轰鸣。


17:42  信阳

爆竹炸响的声音竟然能够穿透列车上的双层玻璃。一小团红色的火光从地平线
上飞起,在夜空里爆裂开来,绽放出一朵灿烂的礼花。紧接着又是一朵,好几
朵,好多朵,五颜六色的,很美。

那些放礼花的,都是些什么样的人呢?他们的餐桌上,想必都有丰盛的年夜饭
吧。


19:32  孝感

一位稍微有点胖的中年妇女,正在给身边的乘客讲述她在北京打工的事情。她
是个回民,是个小时工,扫地,做饭,整理房子,有什么活就做什么活。大年
二十九那天还给一个人家干了超过八个小时的活,得到的报酬是35块钱,外加
一瓶大可乐。她有一个17岁的女儿,初中没有上完就到深圳打工去了,在一个
加工毛绒玩具的工厂,刚开始的时候当学徒,每个月的工资是300 元,还好干
了一年多就涨到500 元了。

“她的心真硬,累了也不哭,一个月才给我打一次电话。”那妇女眼角稍微有
点红,从包袱里掏出两张照片来给身边的人看。

照片上的女孩,长得清清秀秀的,眼睛很亮。


20:12  汉口

川流不息的灯光从窗外摇曳而过。诺大个车厢,只剩下四五个乘客了,两个在
吸烟,一个在打手机。虽然座位旁边有暖气,但是仍然感觉到丝丝的冷意穿透
鞋底直达心脾。

乘务员锁上厕所,开始打扫车厢。


20:33  武昌

列车缓缓的驶进站台,车门打开的时候一股潮湿的空气迎面扑来。仅剩下的几
位乘客提着行李急匆匆的踏上站台,刚刚打扫过的车厢里,又多出了几堆新扔
下的垃圾。

走出站台的时候,听见两位乘务员的聊天:今年的年夜饭,咱们是赶不上了。


期待一些改变

By , September 22, 2004 6:03 am

最近读写能力颓降,需要锻炼乐。

妹妹即将硕士毕业,找工作中。上午在QQ上碰见她,问起最近的情况,听到
这么一句:现在特别的迷茫,不知道要做什么,该去什么样的企业做什么性
质的工作。

我听了只是笑。困惑和迷茫,谁没有过呢?咱都奔三的人了,98年找到第一
份工作,过完国庆节马上就要到第四家公司去上班,虽说对未来仍然一无所
知,不过暂时也还没有被饿死的危险。说句公道话只要你不缺胳膊断腿并且
要求不算太高的话找份工作应该说是比较容易的,再不济昌平那里也有晒沙
子的机会。对于刚刚毕业的学生来说,我觉得有个位置能够养活自己就是个
不错的起点,反正还年轻,有的是折腾的时间和精力。就像Hug 前段时间的
说明档里面说的那样:要知道自己喜欢什么工作的最好方法是挨个去试,这
话说得虽然有点偏激但是我始终认为它充满了生活的哲理。

不过我得承认我一向是不鼓励女孩子做程序员这个行当的,并不是因为女孩
子不具备做程序员的天赋和智慧,而是因为这个行当实在是太累。我身边的
同事,也包括我,在8 小时工作时间内的对话通常不超过50句,在椅子上坐
下来半天也不会舒展一下身体或者活动一下手脚,最常见的姿势就是鸭子般
的伸长了脖子睁大眼睛死死的瞪着屏幕。老实说几年前当我第一次听到IT等
于I’m Tired 这种说法的时候还是颇不以为然的,然而实践证明这个理论至
少对于我来说是正确的。前段时间上某节课的时候又听老师说到人的各种能
力都要服从用进废退的约束,这也从某个角度揭示了为什么像咱这种IT工程
师为什么看起来都比较木呐的秘密。

然而我确实没有想到转变的机会竟然会自己找到我,不过经过几个星期的谈
判我终于确定过了这个国庆节就不再做程序员了。我的下一任雇主S 公司认
为我在某方面的能力虽然已经有了较大幅度的退化,但是仍然有被重新激活
的潜力,因此让我负责该公司某IT产品的宣传和推广工作。不过在这里我必
须承认这个职位最吸引我的地方并不是工作职责上的转变,而是上班距离上
的转变 — 现在我骑自行车上班需要25分钟,马上就要变成5 分钟了 — 这
对于即将承担起更多家庭责任的我来说显然是有重大的现实意义的。

将来会怎么样?我不知道。这个星期一提前到S 公司参加了一个培训,也见
过了将来的同事。女同事的比例比目前的A 公司要高很多,也很PP,吃饭的
时候有很多与工作无关的话题,看来是个好兆头。

生命就是不停的走啊走,只要走的时候留神边走边看,想来就不会错过路边
的风景。

 

一首旧词

By , September 8, 2004 2:20 am

弹指等闲  秋月春朝
只道是少年情怀早消
而今方知  物非人是
故我虽去未遥

异乡谁料与君逢
倾盖如故语平生
前身有缘也何
此时无酒怎可
逸兴飞  杯酒击节纵歌
相对笑  漫吟苏旷辛豪

叹人生事  别多聚少
秋叶尽时君当去
别后雪满山  空寂寥
明月渡帘再相访
思静静  影悄悄

秋色几回  燕归人未
他年里  会否记取
软语相偎
素发低垂
今宵薄醉


舒克
2000.10.31

整理计算机,翻出一首多年前的旧词,想起一位多才多艺的女子。

qyjohn@SMTH
2004.09.08

在QNX平台上开发Java应用程序 (更新版)

By , September 6, 2004 5:20 am

1.       QNX 实时操作系统介绍

 QNX 实时操作系统(QNX Real Time Operating System)是由位于加拿大渥太华的QNX软件系统公司开发的一个针对嵌入式应用的微内核操作系统。QNX软件系统公司成立于1981年,在过去的20 多年中一直致力于微内核实时操作系统的研究与开发。目前的QNX 实时操作系统已经发展成一个可以使用在严实时应用中的高可靠性实时操作系统,能够运行在x86/Pentium, PowerPC, ARM, StrongARM, XScale, MIPS, SH-4等一系列硬件平台上,是在关键任务应用中首选的两个实时操作系统之一(另外一个是VxWorks)。

QNX 是一个与电气工程师协会(Institute of Electrical and Electronics Engineers,IEEE)发表的便携式操作系统界面标准(Portable Operating System Interface, POSIX) 相兼容的实时操作系统。该操作系统提供了一系列可裁剪的功能全面的高可靠性高性能组件,包括分布式计算,资源管理,网络应用,图形窗口系统,文件系统,以 及对Java的支持等等。此外,QNX还是一个与Linux高度兼容的操作系统,由于gcc和gmake等Linux 平台上常用的应用程序开发工具已经被移植到QNX 平台上,很多为Linux平台编写的应用程序可以直接拿到QNX平台上编译运行。此外,QNX还提供了一个类似于Visual C++的应用程序集成开发环境,称为Photon Applicatioin Buider (PhAB)。在这个集成开发环境里程序开发人员能够很方便的开发和调试基于图形用户界面的QNX 应用程序。

更 为重要的是,对于应用程序开发人员来说,QNX是一个完全免费的实时操作系统。根据QNX软件系统公司发布的使用授权协议,在一个产品商业化之前应用程序 开发人员可以自由的使用QNX实时操作系统而无须向QNX 公司交付任何软件使用费用。同样,QNX的应用程序集成开发环境PHAB对于软件开发人员来说也是免费的。QNX 实时操作系统以及QNX应用程序集成开发环境均可以从QNX公司的主页(http://www.qnx.com/) 下载,目前可以下载到的版本是6.2.1。将下载得到的映象文件的内容刻录到一张光盘上,然后利用该光盘启动计算机即可开始安装QNX 操作系统。总的来说安装的过程相当的简单,只需要选择启动方式以及指定QNX 文件系统所在的位置即可。系统文件拷贝完成后将自动的重新启动机器,然后需要用root登录进入系统并且自动安装其它应用程序。在一台500 MHz + 128 MB的计算机上,安装过程通常都小于15分钟。插图一展示了一个正在运行的QNX操作系统。

插图一、 QNX操作系统

 

2.       QNXJava语言的支持

 

  目前支持QNX操作系统的Java虚拟机有两个,一个是IBM公司开发的J9虚拟机,另外一个是Aonix公司开发的PERC虚拟机。J9和PERC都是 专门为实时的嵌入是应用开发的虚拟机,在其设计中对速度优化,内存管理,线程管理,本地方法,垃圾回收,及时编译,可移植性以及可裁剪性能方面做了很大的 努力。在6.2之后版本的QNX操作系统中缺省地提供了J9虚拟机的基本配置,只是没有将其放入系统路径中。我们只需要对系统进行一些简单的配置即可以开 始在QNX操作系统上开发简单的Java应用程序。

在QNX 6.2.1上J9虚拟机被缺省安装在/usr/qde/eclipse/jre这个目录里(在QNX 6.2上是/usr/eclipse/ive目录),我们将这个目录定义为J9_HOME,相当于我们在PC上的JAVA_HOME。在这个目录里包含了 J9虚拟机及其编译器的可执行文件,我们需要将其包括在环境变量PATH中。在$J9_HOME/bin目录下包含了一些运行J9虚拟机及其编译器所必需 的一些动态连接库,因此需要将这个目录包含在环境变量LD_LIBRARY_PATH中。为方便起见,我们将这些配置写到用户根目录下的.profile 文件中:

export J9_HOME=/usr/qde/eclipse/jre
# QNX 6.2
# export J9_HOME=/usr/eclipse/ive
export PATH=$PATH:$J9_HOME/bin:.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$J9_HOME/bin

在QNX 的缺省安装中仅仅包含了J9虚拟机以及编译器的最基本组件,不包括对图形用户界面的支持。在嵌入式Java应用程序中,通常采用AWT或者是SWT来构建 图形用户界面。J9虚拟机的AWT支持包含在WebSphere用户环境升级包(WebSphere Custom Environment Update)中,QNX专业版用户可以直接从QNX公司的网站下载,其他用户可以从IBM公司的WebSphere网站(http://www.ibm.com/embedded/) 下载。将从WebSphere网站下载到的ZIP文件解压缩后,在features/com.ibm.ive.personalConfig_5.5.0 目录中有一个wsdd5.0.jar的文件。将该文件解压缩,在wsdd5.0\local\ive\runtimes\qnx\common\ive\ lib\jclMax目录下有一个prsnlqnx.jar的文件,这就是J9虚拟机所需要的AWT类库,将其拷贝到你的$J9_HOME/lib目录 下。在wsdd5.0\local\ive\runtimes\qnx\x86\ive\bin目录下还有一个libswt-photon- 2130.so文件,是支持AWT所必需的动态连接库,将其拷贝到你的$J9_HOME/bin目录下。最后,修改用户根目录下的.profile文件, 将prsnlqnx.jar加入到环境变量CLASSPATH中:

export CLASSPATH=$CLASSPATH:$J9_HOME/lib/prsnlqnx.jar:.

到 此为止我们已经成功的配置了最基本的Java应用程序开发工具。与PC平台上的Java SDK相类似,J9虚拟机也提供了编译和运行Java应用程序的相应命令: j9c命令用来编译Java源代码,j9命令启动J9虚拟机运行命令行中指定的Java应用程序。坚持要使用javac/java命令的开发人员,可以自 行创建指向j9c/j9命令的符号链接(ln -s)或者是别名(alias)。

下面我们编译运行一个简单的AWT图形界面以确认我们已经正确的安装配置了Java开发环境。将下面的代码保存为HelloAwt.java,使用下面的命令编译运行该程序:

 j9c –classpath $CLASSPATH HelloAwt.java
j9 HelloAwt

插图二是HelloAwt应用程序在QNX平台上运行的屏幕截图。

import java.awt.*;
import java.awt.event.*;

public class HelloAwt extends Frame
{
public HelloAwt()
{
Label label = new Label(“Hello AWT!”);
add(label);

addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}

    public static void main(String[] args)
{
HelloAwt hello = new HelloAwt();
hello.setTitle(“I Love Java!”);
hello.setSize(200, 200);
hello.setVisible(true);
}
}

插图二、运行在QNX操作系统上的HelloAwt程序

 

3.       Eclipse集成开发环境

 习惯于使用集成开发环境进行开发的工程师可能会急着问:有没有能够在QNX平台上开发Java应用程序的集成开发环境呢?答案是肯定的:确实存在基于QNX平台的Java集成开发环境,它就是著名的Eclipse项目。

Eclipse 组织是由Borland、IBM、Red Hat、SuSE、QNX等公司于2001年11月创建的。该组织的目的是为开发人员提供一个开放并且免费的平台,在该平台上可以利用多种程序设计语言为 不同的操作系统和硬件平台开放应用程序。通过一个开放的插件框架,开发人员可以自由的创造、集成和使用各种各样的软件开发工具,从而有效的提高软件开发的 效率。目前Eclipse集成开发环境已经可以在AIX、HP UNIX、Linux、Mac OS X、QNX、Solaris和Windows等多个平台上运行。

为 了在QNX平台上使用Eclipse,我们需要从Eclipse的网站下载Eclipse平台和针对J9虚拟机的启动插件。在Eclipse的网站上列出 了多个提供下在服务的镜像站点,你可以选择其中的任意一个开始下载。进入某个下载站点后你可能会发现有多个版本的Eclipse可供选择,我们推荐的版本 是发行版本2.1(R-2.1-200303272130),进入对应的目录后下载Eclipse平台eclipse-platform-2.1-qnx -photon.zip。在该目录下还有一个名为j9_read_me.html的文件,根据该文件中的说明并进入相应下载页面下载针对J9虚拟机的启动 插件org.eclipse.jdt.launching.j9_20030213.zip。将Eclipse平台解压缩至 /usr/qde/eclipse目录(即$J9_HOME的上一级目录)下,将启动插件解压缩至/usr/qde/eclipse/plugins目录 下。在/usr/qde/eclipse/plugins/org.eclipse.swt.photon_2.1.0/os/qnx/x86目录下有一 个名为libswt-photon-2133.so的文件,是启动SWT图形界面所必需的动态连接库。由于Eclipse平台是基于SWT的,因此在启动 Eclipse平台之前需要将该文件所在的路径加入环境变量LD_LIBRARY_PATH之中。为了简单起见,我们干脆把这个文件拷贝到$ J9_HOME/bin目录,因为在前面的配置中我们已经将这个目录添加到环境变量LD_LIBRARY_PATH里面了。

启 动Eclipse集成开发环境的命令是/usr/qde/eclipse目录中的eclipse脚本。在终端模拟器中运行该命令,如果看到如图三所示的界 面,就表示Eclipse已经正确的安装和配置好了。如果在运行中出现任何错误信息,可以参考 /usr/qde/eclipse/workspace/.metadata目录中的.log文件中的记录排除错误。

 

插图三、运行在QNX操作系统上的Eclipse集成开发环境

 

为方便起见,可以修改用户配置文件./profile/usr/qde/eclipse目录添加到系统环境变量PATH中,这样每次启动Eclipse的时候就不用输入前面的目录名了。

  export PATH=$PATH:/usr/qde/eclipse

需要进一步学习如何使用Eclipse集成开发环境的读者,可以自行参考Eclipse网站上所提供的文档和教程。

 

4.       基于SWT的图形用户界面

  使用Java语言开发过图形用户界面的工程师都知道,基于Java的图形用户界面的运行速度是相当慢的。在配置不高的低端系统上,即使是简单的键盘输入或 者是鼠标点击动作也会让应用程序陷入停顿。虽然基于AWT的图形用户界面在执行效率上要优于基于Swing的图形用户界面,但是仍然与基于C/C++或者 其他高级程序设计语言的图形用户界面存在较大的差距。使用过Eclipse的读者可能会发现,Eclipse运行起来不象我们所常见的Java应用程序那 样慢,这是因为Eclipse使用了SWT来构建图形用户界面。SWT直接调用了操作系统的图形库,从而使得Java应用程序的Look & Feel 与操作系统的习惯完全一致;更为重要的是,对本地方法的直接调用大幅度的提高了基于SWT 的Java应用程序的运行速度。

最 早的时候SWT是作为Eclipse平台的一部分出现的,只有基于Eclipse平台的应用程序才能够使用SWT。SWT逐步走向成熟之后被设计成一个独 立的Java类库,这使得那些习惯于使用其他开发环境(例如命令行)的工程师也能够在其应用程序中使用SWT。如果你已经按照本文中第三节的说明安装配置 了Eclipse集成开发环境,你只需要将/usr/qde/eclipse/plugins/ org.eclipse.swt.photon_2.1.0/ws/photon目录下的swt.jar加入到系统环境变量CLASSPATH中即可开始 使用SWT。如果你没有安装Eclipse集成开发环境,但是仍然希望在QNX上使用SWT来构建图形用户界面,你可以从Eclipse网站或者任意镜像 站点下载发行版本2.1的SWT类库swt-2.1-qnx-photon.zip。将下载到的ZIP文件解压缩,把文件swt.jar添加到系统环境变 量CLASSPATH中,将文件libswt-photon-2133.so所在的目录添加到系统环境变量LD_LIBRARY_PATH中。

通常来说,构建一个基于SWT 的图形用户界面需要经过如下步骤: 

(1) 创建一个Display对象,该对象代表一个SWT 进程(session)。
(2) 创建一个或者是多个Shell对象,一个Shell对象相当于我们在AWT/Sing里面所说的顶极容器,也就是应用程序的主窗口。
(3) 在Shell对象上面创建用户所需要的控件。
(4) 初始化所有的控件,包括大小和初始值等,为控件的事件注册必要的监听器Listener。
(5) 打开主窗口。
(6) 启动事件处理循环,一直到用户结束程序的运行。
(7) 垃圾回收。

下面我们编译运行一个简单的SWT图形界面以确认我们已经正确的安装配置了SWT类库和动态连接库。将下面的代码保存为HelloSwt.java,使用下面的命令编译运行该程序:

 j9c –classpath $CLASSPATH HelloSwt.java
j9 HelloSwt

插图四是HelloSwt应用程序在QNX平台上运行的屏幕截图。

import org.eclipse.swt.widgets.*;
import org.eclipse.swt.SWT;

public class HelloSwt
{
public static void main(String[] args)
{
Display display = new Display();
Shell   shell   = new Shell(display);
Label   label   = new Label(shell, SWT.CENTER);
label.setText(“Hello SWT!”);
label.setBounds(shell.getClientArea());
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
}
 

插图四、运行在QNX操作系统上的HelloSwt程序

 需要进一步学习如何使用SWT来构建图形用户界面的读者,可以自行参考Eclipse网站上所提供的文档和教程。

 

5.       小结

 

本文简单地介绍了QNX实时操作系统以及在QNX操作系统上开发Java应用程序所需要的配置和工具。作为一个优秀的实时操作系统,QNXJava语言的支持丝毫不逊色于我们常用的Windows或者Linux平台。功能强大的Eclipse集成开发环境使得开发人员摆脱了传统的“主机/目标机”开发模式,能够游刃有余的在QNX平台上直接开发调试Java应用程序。对AWTSWT的支持,使得两个战营的开发人员都能够在一个平台上开发出漂亮美观的图形用户界面。因此,QNX是一个开发嵌入式Java产品的绝妙平台,在基于PC-104构架的嵌入式系统中有着广阔的应用前景。

 

读者如果需要进一步了解本文中提及的QNX实时操作系统、IBM WebSphere软件、Eclipse集成开发环境或者是Java编程语言,请自行参考如下网站所提供的文档和教程。

 

QNX公司:             http://www.qnx.com/

IBM WebSphere     http://www.ibm.com/embedded/

Eclipse网站:          http://www.eclipse.org/

Java主页:              http://java.sun.com/

 

Panorama Theme by Themocracy