惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
V
Visual Studio Blog
博客园_首页
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
SegmentFault 最新的问题
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
J
Java Code Geeks
月光博客
月光博客
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
F
Fortinet All Blogs
P
Privacy & Cybersecurity Law Blog
C
CERT Recently Published Vulnerability Notes
C
CXSECURITY Database RSS Feed - CXSecurity.com
B
Blog RSS Feed
S
Schneier on Security
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
W
WeLiveSecurity
A
Arctic Wolf
U
Unit 42
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
Recorded Future
Recorded Future
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
大猫的无限游戏
大猫的无限游戏
Microsoft Security Blog
Microsoft Security Blog
Hacker News: Ask HN
Hacker News: Ask HN
量子位
B
Blog
T
The Exploit Database - CXSecurity.com
C
Cisco Blogs
博客园 - 三生石上(FineUI控件)
H
Help Net Security
博客园 - 叶小钗
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 热门话题
Hugging Face - Blog
Hugging Face - Blog
Google DeepMind News
Google DeepMind News
小众软件
小众软件
雷峰网
雷峰网
TaoSecurity Blog
TaoSecurity Blog
Schneier on Security
Schneier on Security

博客园 - pantian

Bressanone:让心平静下来 Vista终于来了! 从头开始安装Eclipse和VE Eclipse3.2.1下的RCP程序,Export到Solaris motif解决办法 使用优盘(Flash)有感 读《JOEL说软件》有感----通才和专才 警惕二十九岁现象 (转贴) 如果,你遇到了...... (转) [大话IT]关于国内IT技术从业者乱象根源的分析(转) 在Win2003 R2上安装SQL Server 2005(二) 在Win2003 R2上安装SQL Server 2005(一) 使用iTextSharp修改PDF文件(二) 使用iTextSharp修改PDF文件(一) 为什么只有软件行业要求开源? 移动老总上公厕 如何突破局域网对上网用户的一些限制(转) 在asp.net 2.0中使用CuteEditor 5.0的一个注意事项 本人语录(001) 我们的工作年限要求,估计可能将更长了
用Eclipse 3.1.1开发图形编辑程序
pantian · 2006-06-22 · via 博客园 - pantian

注一:Eclipse现在稳定发布版本是3.1.2,最新版本是3.2 RC7,估计3.2的正式发布版本也很快就会出来了,相关信息请参考Eclipse的网站

注二:在程序的开发过程中,重点参考了:

八进制:您的《GEF入门系列》博客是我这个程序的基础;

子在川上曰:您的《Eclipse从入门到精通》这本书给了我非常大的帮助;

中国Eclipse社区:这个社区解决了我的一些疑惑,虽然该社区人气好像不足;

感谢这些从来没见过面、却给过我帮助的人。

[名词解释]

流片(Tapeout):简单地说,就是把图纸上的设计(由IC设计公司来设计,如:我们公司)变成实实在在的芯片(让专门的芯片制造公司根据图纸来制造,如:中芯国际)的过程。

[需求]

我现在的公司是家IC设计企业,在芯片设计的流程中,最后一个环节是:流片。在把芯片拿出去流片前,工程师们会对准备流片的技术文件进行非常严格的验证、测试。虽然我们公司的某些产品在全世界都处于领先地位,但在验证芯片里的每个PinPadChip的位置,及连线时,仍然没有非常好的工具,只能依靠工程师们的经验。这有可能会导致某些产品流片失败,而每次流片的最低成本都在几千美元以上。

因此,公司希望能做一个软件,把PinPadChip及其它相关的数据输进去,能直观地把它们之间的关系表达出来,并按照一定的规则来自动进行验证,如果出现了错误,应该还可以对其进行直接地拖动、平移、旋转,以得到正确的结果,最后将结果输出为AutoCAD能打开的文件格式。

另外,该软件需要在设计工程师们的机器上运行,而他们的机器均为SolarisLinux,因此,该软件需要能跨平台运行。

[实现]

1、由于需要跨平台(WindowsLinuxUnix),所以,只能选择Java

2、Java下的编程平台,风头最劲的似乎只有Eclipse了,NetBeans 5.0当时还没有发布(这个软件是三个多月前开工的,由于需求的多变性,才完工没多久),在此之前,我在2001年接触过它的前身Visual Age,但对Eclipse只是听说过;

3、OK,开发平台、语言都选择好了,就可以开工了。

4、具体开发过程,我这里就不多说了,主要是也没什么好说的,把八进制的那一系列文章看完就差不多会了,再次感谢八进制。

5、AutoCAD可以支持两种格式的文件:DWGDXF。其中,DWG是二进制格式,DXFASCII文件格式,签于DXF格式的资料比较多,因此,我在输出文件时,选择了DXF格式(简单形状、文本的输出并不难,写几个小函数就搞定了),其格式说明,附在每个版本的AutoCAD帮助文件中。

[运行截图]

1、Window运行如下:



2、
Red Hat AS4GTK)运行如下:

3、Solaris 8Motif SPARC)运行如下:

BTW:为了测试该软件在Solaris平台的运行情况,我曾经在开发机器上安装了一个VPC2004,并用2005年第8期的《程序员》杂志赠送的Solaris 10 for x86DVD光盘安装成功。

说实话,Solaris 10确实是个非常优秀的操作系统,高性能就不用说的,而且其中的Java Desktop 3界面非常精致,操作也相当方便,没安装过的朋友,可在此看看界面,最最重要的是:Solaris 10是开源的

[后记]

在开发过程中,碰到了几个有意思的问题,特记录如下:

1、程序在Eclipse 3.1.1环境下运行时都很正常,但是,当用RCP打包后,再运行却总是报错:

java.lang.RuntimeException: No application id has been found.

但如果用Eclipse 3.2版的程序来打包,得到的可运行程序,就能正确运行(八进制的例子里用的是Eclipse 3.2)。

原因(应该是一个Bug):

我把在网上查找了大量的资料,虽然也有很多人碰到这种问题,但他们的方法都不能解决我的问题,百思不得其解。后来,实在是没办法了,就把用3.1.13.2打好包的程序来做一一对比(我晕头了,其实最开始就应该试用这个方法),终于发现了问题所在:

由于在程序里使用到EclipseUML来建模,并生成了相应的xxxModelxxxxModel.edit包。但用3.1.1打包时,这些包里的主要文件(如:plugin.xmlplugin.propertiesMETA-INF目录)并没有被包含进去。而用3.2打包时,会自动把Model包里所有的文件都包含进去。

解决办法:

自然是手工选择所需要的文件,然后再打包,即可

2、该程序需要在Unix/Linux下运行,所以,在程序里显式地写程序路径时,注意WindowsUnix/Linux的路径区别,前者支持“/”、“\”两种,而后者只支持“/”一种。

3、在插入了RCP Delta包来Export多平台包时,Eclipse3.1.1--3.2RC5均有个Bug,这个Bug会导致输出到Solaris平台的程序包无法运行,包里需要执行的文件在Solarisfile命令查看时,竟然是data格式的文件。

两种解决办法:

A、升级你的Eclipse到最新版本,至少是3.2RC5以后的版本;

B、先下载Eclipse-RCP-SDK-3.1.1-solaris-motif,然后解压缩,并将其中的Eclipse文件替换掉\features\org.eclipse.platform.launchers_3.1.0\bin\motif\solaris\sparc目录下的launcher文件,即:删除launcher文件,将Eclipse文件Copy过来,并改名为launcher文件即可。

[总结]

第一次使用Eclipse做项目,感觉Eclipse还是相当不错的,界面美观友好,编辑器功能强大,操作方便,至少有GEF 这个框架(.Net下有类似框架吗?知道的朋友还请通告一声),而且如果出现了什么问题,可以自己去看源代码,修正错误(.Net就只能等MS的升级包了)。

但是Eclipse也有不太舒服的地方,比如:需要自己去手动配置开发环境,自己去找你并不熟悉的、但需要对应版本的开发包,而且有较多的Bug(上面两个Bug花费了我相当长的时间,.Net里至少还没碰到这种低级的、但又相当严重的Bug),虽然它升级很快。

而且因为升级太快,也造成了我的困惑:我有必要每几个月就升级一次我的编程平台吗?升级平台毕竟是件比较麻烦的事情,说不定其中有些包的API就不再被支持了,而我一个项目都还没做完呢。但如果不升级,某些功能又享受不到,某些Bug也还得继续存在,两难呀……


[
幸好我的下一个项目是.Net,可以等Eclipse 3.2出炉再说了]