急求一个eclipsoreUml的画类图的插件,最好直接给我,…

根据java代码画出uml类图,题目为五子棋。代码可以找我私聊。_百度知道
根据java代码画出uml类图,题目为五子棋。代码可以找我私聊。
成功画出可以给你加10分。
发到邮箱行吗.com你有这个软件吗?@qq?发个行吗
提问者采纳
2008.EclipseUML.Edition一个 eclipse 插件支持源代码生产 uml 类图 200+M 呢不够浪费时间的.Studio,你试试Omondo
提问者评价
虽然不是很满意,但是还是点你的为最佳答案吧,我用其他方法也解决了这个问题了
其他类似问题
五子棋的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁有没有根据源代码生成类图的小工具?
有没有根据源代码生成类图的小工具?
或者按照特定格式写了一些类, 通过这个小工具处理后生成类图.
rational rose使用太繁了,而且需要把所有的源文件都弄进去才能生成
手工画类图太痛苦,用Visio好点,但是它每次出来一个对话框让填字段,
也不会自动的调整列宽,麻烦。
Doxygen在生成类结构图方面很不错,可惜只是类之间的大致关系,
大部分类成员不会画出来。
/liveMedia/public/doxygen/inherits.html
看的时候往下翻两页.
生成的图上每个框都有链接, doxygen好强。
昵称: dieken_qfz &时间:
昵称: PoemCode &时间:
昵称: gradetwo &时间:
昵称: dieken_qfz &时间:
昵称: dieken_qfz &时间:
昵称: Jamsa &时间:
作者: dieken_qfz
刚试过EclipseUML了,好笨重,弄了一个Eclipse,N多插件,出来一个剧复杂
的界面,琳琅满目啊,呵呵,解析的也不咋样,使用也不方便,感觉JBuilder
的那个UML工具(借用的Together?可惜收费的,买不起)比这个好用多了。
如果你要求不高,有一本开源的uml工具,名字好象是magicuml,--不太肯定,还有一个是共享版的工具,试用一个月。btw:eclipse要是能象debian一样解决插件的依赖关系,那该多好。
昵称: PoemCode &时间:
昵称: jianyu &时间:EclipseUML插件 - 下载频道
- CSDN.NET
&&&&EclipseUML插件
EclipseUML插件
EclipseUML 是 Eclipse 的插件,是用来建模的,类似 IBM Rational Rose 的画类图功能.安装插件简单方便,而且免费,可以根据 Java 代码生成类图
若举报审核通过,可奖励20下载分
被举报人:
sailer2008
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
开发技术下载排行今天终于把Eclipse基本搞定了。
版本一定要是eclipse 3.0.1 才行,这样多国语言包才有效果,我觉得挺好的,可以用命令行参数:
eclipse.exe -nl
eclipse.exe -nl
可以切换中英文(方法见eclipse转载大全 哈哈),太棒了,这样可以初学的时候看中文,然后再换成英文的,比vb的中英文强多了,不用重装了。
按照帮助文件试成功了第一个SWT程序,感觉就是运行的时候必须设置vm
变量:”-Djava.library.path=c:\eclipse3.0.1\plugins\org.eclipse.swt.win32_3.0.1\os\win32\x86″ 比较麻烦
还试了试awt和swing组件,还不错,觉得它可以自动import文件比较方便。
设置了 窗口-首选项-java-编辑器-代码辅助-自动激活延迟 = 100 ,不知道为什么默认设成了那么长时间,高手都不用提示吗???
打算过几天把VE装上,领略一下图形化编程到底方不方便………………
— dzmonkey @ 11:11 pm
今天是我第一次搞BLOG这个东东,尝试一下,应该还挺好玩。
e.天网搜索:有一个ftp:\\202.112.14.126上有不少eclipse资源
— dzmonkey @ 11:10 pm
热键篇:Template:Alt + /修改处:窗口-&喜好设定-&工作台-&按键-&编辑-&内容辅助。个人习惯:Shift+SPACE(空白)。简易说明:编辑程序代码时,打sysout +Template启动键,就会自动出现:System.out.println(); 。设定Template的格式:窗口-&喜好设定-&Java-&编辑器-&模板。
程序代码自动排版:Ctrl+Shift+F修改处:窗口-&喜好设定-&工作台-&按键-&程序代码-&格式。个人习惯:Alt+Z。自动排版设定:窗口-&喜好设定-&Java-&程序代码格式制作程序。样式页面-&将插入tab(而非空格键)以内缩,该选项取消勾选,下面空格数目填4,这样在自动编排时会以空格4作缩排。
快速执行程序:Ctrl + F11个人习惯:ALT+X修改处:窗口-&喜好设定-&工作台-&按键-&执行-&启动前一次的启动作业。简易说明:第一次执行时,它会询问您执行模式,设置好后,以后只要按这个热键,它就会快速执行。&ALT+Z(排版完)、ATL+X(执行)&..我觉得很顺手^___^
自动汇入所需要的类别:Ctrl+Shift+O简易说明:假设我们没有Import任何类别时,当我们在程序里打入: BufferedReader buf =new BufferedReader(new InputStreamReader(System.in));
此时Eclipse会警示说没有汇入类别,这时我们只要按下Ctrl+Shift+O,它就会自动帮我们Import类别。
查看使用类别的原始码:Ctrl+鼠标左键点击简易说明:可以看到您所使用类别的原始码。
将选取的文字批注起来:Ctrl+/简易说明:Debug时很方便。修改处:窗口-&喜好设定-&工作台-&按键-&程序代码-&批注
视景切换:Ctrl+F8个人习惯:Alt+S。修改处:窗口-&喜好设定-&工作台-&按键-&窗口-&下一个视景。简易说明:可以方便我们快速切换编辑、除错等视景。
密技篇:一套Eclipse可同时切换,英文、繁体、简体显示:1.首先要先安装完中文化包。2.在桌面的快捷方式后面加上参数即可,英文-& -nl “zh_US”繁体-& -nl “zh_TW”简体-& -nl “zh_CN”。(其它语系以此类推)像我2.1.2中文化后,我在我桌面的Eclipse快捷方式加入参数-n1 “zh_US”。“C:\Program Files\eclipse\eclipse.exe” -n “zh_US”接口就会变回英文语系噜。
利用Eclipse,在Word编辑文书时可不必将程序代码重新编排:将Eclipse程序编辑区的程序代码整个复制下来(Ctrl+C),直接贴(Ctrl+V)到Word或WordPad上,您将会发现在Word里的程序代码格式,跟Eclipse所设定的完全一样,包括字型、缩排、关键词颜色。我曾试过JBuilder、GEL、NetBeans…使用复制贴上时,只有缩排格式一样,字型、颜色等都不会改变。
外挂篇:外挂安装:将外挂包下载回来后,将其解压缩后,您会发现features、plugins这2个数据夹,将里面的东西都复制或移动到Eclipse的features、plugins数据夹内后,重新启动Eclipse即可。
让Eclipse可以像JBuilderX一样使用拖拉方式建构GUI的外挂:1.Jigloo SWT/Swing GUI Builder :下载此版本:Jigloo plugin for Eclipse (using Java 1.4 or 1.5)安装后即可由档案-&新建-&其它-&GUI Form选取要建构的GUI类型。
2.Eclipse Visual Editor Project:点选下方Download Page,再点选Latest Release 0.5.0进入下载。除了VE-runtime-0.5.0.zip要下载外,以下这2个也要:EMF build 1.1.1: (build page) (download zip) GEF Build 2.1.2: (build page) (download zip)
3.0 M8版本,请下载:EMF build IGEF Build IVE-runtime-1.0M1
安装成功后,便可由File-&New-&Visual Class开始UI设计。安装成功后,即可由新建-&Java-&AWT与Swing里选择所要建构的GUI类型开始进行设计。VE必须配合着对应版本,才能正常使用,否则即使安装成功,使用上仍会有问题。
使用Eclipse来开发JSP程序:外挂名称:lomboz(下载页面)请选择适合自己版本的lomboz下载,lomboz.212.p1.zip表示2.1.2版,lomboz.3m7.zip表示M7版本….以此类推。lomboz安装以及设置教学:Eclipse开发JSP-教学文件
Java转exe篇:实现方式:Eclipse搭配JSmooth(免费)。1.先由Eclipse制作包含Manifest的JAR。制作教学2.使用JSmooth将做好的JAR包装成EXE。JSmooth下载页面:3.制作完成的exe文件,可在有装置JRE的Windows上执行。
Eclipse-Java编辑器最佳设定:编辑器字型设定:工作台-&字型-&Java编辑器文字字型。(建议设定Courier New -regular 10)
编辑器相关设定:窗口-&喜好设定-&Java-&编辑器
外观:显示行号、强调对称显示的方括号、强调显示现行行、显示打印边距,将其勾选,Tab宽度设4,打印编距字段设80。程序代码协助:采预设即可。语法:可设定关键词、字符串等等的显示颜色。附注:采预设即可。输入:全部字段都勾选。浮动说明:采预设即可。导览:采预设即可。
使自动排版排出来的效果,最符合Java设计惯例的设定:自动排版设定:窗口-&喜好设定-&Java-&程序代码制作格式。
换行:全部不勾选。分行:行长度上限设:80。样式:只将强制转型后插入空白勾选。内缩空格数目:设为4。
Eclipse的教学文件:Eclipse 3.0系列热键表 – 中英对照解说版 (by sungo) ~New~Window+GCC+CDT用Eclipse开发C、C++ (by sungo) ~New~
其它:扩充Eclipse的Java 开发工具(中文)使用Eclipse开发J2EE 应用程序(中文)使用Eclipse平台进行除错(中文)用Eclipse进行XML 开发(中文)开发Eclipse外挂程序(中文)国际化您的Eclipse外挂程序(英文)将Swing编辑器加入Eclipse(英文)如何测试你的Eclipse plug-in符合国际市场需求(英文)
Eclipse的相关网站:Eclipse相关教学[简体]
— dzmonkey @ 11:09 pm
Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。
虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。
开放源代码软件是这样一种软件,它们在发布时附带了旨在确保将某些权利授予用户的许可证。当然,最明显的权利就是源代码必须可用,以便用户能自由地修改和再分发该软件。这种用户权利的保护是通过一种称为 copyleft 的策略来完成的:软件许可证主张版权保护,除非明确授予用户这样的权利,否则用户不得分发该软件。copyleft 还要求同一许可证涵盖任何被再分发的软件。这实际上倒置了版权的目的——使用版权来授予用户权利,而不是为软件的开发者保留版权——copyleft 经常被描述为“保留所有版权”。
曾经四处蔓延的对开放源代码软件的许多恐惧、担忧和疑虑,都与某些 copyleft 许可证的所谓“病毒”性质有关——如果使用开放源代码软件作为您开发的程序的一部分,您将失去自己的知识产权,因为该许可证将“传染”您开发的专有部分。换句话说,该许可证可能要求与开放源代码软件一起打包的所有软件,都必须在相同的许可证之下发布。虽然这对最著名的 copyleft 许可证(即 GNU 通用公共许可证,例如 Linux 就是在该许可证之下发布的)来说可能是事实,当时还有其他许可证在商业化和社区考虑之间提供了较好的平衡。
开放源代码计划(Open Software Initiative)是一家非营利机构,它明确定义了开放源代码的含义及满足其标准的认证许可证。Eclipse 是在 OSI 认可的通用公共许可证(CPL)1.0 版之下被授予许可证的,CPL“旨在促进程序的商业化使用……”(欲获得指向通用公共许可证 1.0 版完整文本的链接,请参阅本文稍后的 )。
为 Eclipse 创建插件或将 Eclipse 用作软件开发应用程序基础的开发人员,需要发布他们在 CPL 下使用或修改的任何 Eclipse 代码,但是他们可以自由决定自己添加的代码的许可证授予方式。与出自 Eclipse 的软件一起打包的专有代码不需要作为开放源代码来授予许可证,该源代码也不需要提供给用户。
尽管大多数开发人员不会使用 Eclipse 来开发插件,或创建基于 Eclipse 的新产品,但是 Eclipse 的开放源代码性质所意味的,并不只是它使得 Eclipse 免费可用(尽管便于商业化的许可证意味着插件可能要花钱)。开放源代码鼓励创新,并激励开发人员(甚至是商业开发人员)为公共开放源代码库贡献代码。对此存在许多原因,不过最本质的原因或许是为这个项目作贡献的开发人员越多,这个项目就会变得对每个人都越宝贵。随着这个项目变得更加有用,更多的开发人员将会使用它,并围绕它形成一个社区,就像那些围绕 Apache 和 Linux 形成的社区一样。
Eclipse.org 协会管理和指导 Eclipse 正在进行中的开发。在据说 IBM 花了 4000 万美元开发 Eclipse,并把它作为一个开放源代码项目发布之后,Eclipse.org 协会吸收了许多软件工具提供商,包括 Borland、Merant、Rational、RedHat、SuSE、TogetherSoft 和 QNX。从那以后还有其他公司相继加入,包括 Hewlett Packard、Fujitsu、Sybase。这些公司分别向理事会派了一名代表,这个理事会负责确定 Eclipse 项目的方向和范围。
在最高层,项目管理委员会(Project Management Committee,PMC)管理着 Eclipse 项目。这个项目被划分为多个子项目,每个子项目都有一名负责人。大型子项目又被划分为组,每个组也有一名负责人。目前,这其中的大多数管理角色都由最初开发 Eclipse 的 IBM 子公司 Object Technology International (OTI)的人担任,但是作为一个开放源代码的项目,它欢迎任何人的参与。任何特定部门的职责是通过该部门对项目的贡献来争取的。
现在我们已经考察了 Eclipse 背后的一些理论、历史和管理,下面让我们考察该产品本身。
在第一次打开 Eclipse 时,首先看到的是下面的欢迎屏幕:
Eclipse 工作台由几个称为 视图(view) 的窗格组成,比如左上角的 Navigator 视图。窗格的集合称为 透视图(perspective)。默认的透视图是 Resource 透视图,它是一个基本的通用视图集,用于管理项目以及查看和编辑项目中的文件。
Navigator 视图 允许您创建、选择和删除项目。Navigator 右侧的窗格是 编辑器区域。取决于 Navigator 中选定的文档类型,一个适当的编辑器窗口将在这里打开。如果 Eclipse 没有注册用于某特定文档类型(例如,Windows 系统上的 .doc 文件)的适当编辑器,Eclipse 将设法使用外部编辑器来打开该文档。
Navigator 下面的 Outline 视图 在编辑器中显示文档的大纲;这个大纲的准确性取决于编辑器和文档的类型;对于 Java 源文件,该大纲将显示所有已声明的类、属性和方法。
Tasks 视图 收集关于您正在操作的项目的信息;这可以是 Eclipse 生成的信息,比如编译错误,也可以是您手动添加的任务。
该工作台的大多数其他特性,比如菜单和工具栏,都应该和其他那些熟悉的应用程序类似。一个便利的特性就是不同透视图的快捷方式工具栏,它显示在屏幕的左端;这些特性随上下文和历史的不同而有显著差别。Eclipse 还附带了一个健壮的帮助系统,其中包括 Eclipse 工作台以及所包括的插件(比如 Java 开发工具)的用户指南。至少浏览一遍这个帮助系统是值得的,这样可以看到有哪些可用的选项,同时也可更好地理解 Eclipse 的工作流程。
为继续这个短暂的 Eclipse 之旅,我们将在 Navigator 中创建一个项目。右键单击 Navigator 视图,然后选择 New=&Project。当 New Project 对话框出现时,选择左面的 Java。标准 Eclipse 只有一种 Java 项目类型,名为“Java Project”。如果安装了插件来提供 JSP 和 servlet 支持,我们会从这里看到一个用于 Web 应用程序的附加选项。眼下,请选择 Java Project,在提示项目名称时输入“Hello”,然后按 Finish。
接下来,我们将检查一下 Java 透视图。取决于您喜欢的屏幕管理方式,您可以通过选择 Window=&Open Perspective=&Java 来改变当前窗口中的透视图,也可以通过选择 Window=&New Window,然后再选择这个新的透视图,从而打开一个新的窗口。
正如您可能预期的那样,Java 透视图包含一组更适合于 Java 开发的视图。其中之一就是左上角的视图,它是一个包含各种 Java 包、类、jar 和其他文件的层次结构。这个视图称为 Package Explorer。还要注意主菜单已经展开了——并且出现了两个新的菜单项:Source 和 Refactor。
为试验一下 Java 开发环境,我们将创建并运行一个“Hello, world”应用程序。使用 Java 透视图,右键单击“Hello”项目,选择 New=&Class,如图 2 所示。在随后出现的对话框中,键入“Hello”作为类名称。在“Which method stubs would you like to create?”下面,选中“public static void main(String[] args)”复选框,然后按 Finish。
这样将在编辑器区域创建一个包含 Hello 类和空的 main() 方法的 .java 文件,如图 3 所示。然后向该方法添加如下代码(注意其中 i 的声明是有意省略了的):
您会在键入时注意到 Eclipse 编辑器的一些特性,包括语法检查和代码自动完成。在 2.1 版(我曾下载 M2 版来试用过)中,当您键入开括号或双引号时,Eclipse 会自动提供配对的符号,并将光标置于符号对之内。
在其他情况下,您可以通过按 Ctrl-Space 来调用代码自动完成功能。代码自动完成提供了上下文敏感的建议列表,您可通过键盘或鼠标来从列表中选择。这些建议可以是针对某个特定对象的方法列表,也可以是基于不同的关键字(比如 for 或 while)来展开的代码片断。
语法检查依赖增量编译。每当您保存代码,它就在后台接受编译和语法检查。默认情况下,语法错误将以红色下划线显示,一个带白 “X” 的红点将出现在左边沿。其他错误在编辑器的左边沿通过灯泡状的图标来指示;这些就是编辑器或许能为您修复的问题——即所谓的Quick Fix(快速修复)特性。
上面的代码例子在 for 语句后面有一个灯泡状图标,因为 i 的声明被省略了。双击该图标将调出建议的修复列表。在此例中,它将提供创建一个类字段 i、一个局部变量 i 或一个方法参数 i 的建议;单击其中的每一个建议都会显示将要生成的代码。图 4 显示了该建议列表和建议创建一个局部变量之后生成的代码。
双击该建议就会把建议代码插入到代码中的恰当位置。
一旦代码无错误地编译完成,您就能够从 Eclipse 菜单上选择 Run 来执行该程序(注意这里不存在单独的编译步骤,因为编译是在您保存代码时进行的。如果代码没有语法错误,它就可以运行了)。这时会出现一个具有适当默认设置的 Launch Configurations 对话框;请按右上角的 Run 按钮。一个新的选项卡式窗格将出现在下面的窗格(控制台)中,其中显示了程序的输出,如图 5 所示。
也可以在 Java 调试器中运行程序。首先双击编辑器视图左端的灰色边沿,从而在调用 System.out.println() 之后的 main() System.out.println() 中设置一个断点。一个蓝色的点将会出现在那里。然后从 Run 菜单上选择 Debug。正如上面描述的,这时会出现一个 Launch Configurations 对话框。请选择 Run。透视图将自动切换到 Debug 透视图,其中具有许多有趣的新视图,如图 6 所示:
首先,请注意该透视图左上角的 Debug 视图。这个视图显示调用堆栈,并且标题栏中有一个工具栏,它允许您控制程序的执行,包括继续、挂起或终止程序、跟踪下一个语句、单步执行下一个语句,或者从方法返回。
右上角的窗格包含许多选项卡式的视图,包括 Variables、Breakpoints、Expressions 和 Display。这里我单击了 Variables 视图,以便我们能够看到 i 的当前值。
可以通过上下文敏感的帮助,获得关于这些视图的更多信息:单击视图的标题,然后按 F1。
除了像 JDT 这样用于编辑、编译和调试应用程序的插件外,还有些可用的插件支持从建模、生成自动化、单元测试、性能测试、版本控制到配置管理的完整开发过程。
Eclipse 标准地附带了配合 CVS 使用的插件,CVS 是用于源代码控制的开放源代码并发版本系统(Concurrent Versions System)。Team 插件连接到 CVS 服务器,允许开发团队的成员操作一组源代码文件,却不会相互覆盖其他人的更改。这里不打算进一步探讨如何从 Eclipse 内部进行源代码控制,因为这需要安装 CVS 服务器,不过支持开发团队而不只是独立的开发,这是 Eclipse 的一个重要的必备特性。
已经可用或已宣布要推出的一些第三方插件包括:
版本控制和配置管理
Merant PVCS
Rational ClearCase
OMONDO EclipseUML
Rational XDE (代替 Rose)
Together WebSphere Studio Edition
Macromedia Flash
Web 开发、HTML、XML
Macromedia Dreamweaver
应用服务器集成
Sysdeo Tomcat launcher
欲了解可用插件的更完整列表,请参阅
中的链接。
要查看插件的例子,以及查看它是如何与 Eclipse 集成的,请下载流行的 OMONDO EclipseUML(参阅
中的链接);您需要注册,不过该插件是免费的。这个插件依赖 GEF,即 Graphical Editor Framework,这是另一个 Eclipse 插件。GEF 是 Tools 子项目的一部分。要下载 GEF,请转到 Eclipse Web 站点(参阅 ),选择“downloads”,然后单击“Tools PMC downloads page”链接。注意您需要下载 OMONDO 推荐的 GEF 版本(针对 OMONDO 1.0.2 的是 GEF 2.0 版)。
下载之后,插件的安装通常是通过解压缩下载文件,并将其内容复制到 Eclipse 插件目录来完成的。在此例中,GEF 需要解压缩到 Eclipse目录(它将自动从该目录进入插件目录)。为安全起见,您可能想将它解压缩到某个临时目录,再相应地从那里复制相关目录。如果 Eclipse 正在运行,您需要停止它然后再重新启动它,这样它才能识别新安装的插件。
一旦 EclipseUML(以及 GEF)安装完成,您就能够像创建一个 Java 类文件一样创建一个类图。在 Java 透视图中,右键单击 Package Explorer 中的“Hello”项目,然后从弹出菜单上选择 New=&Other。New 对话框的左边窗格中将会有一个用于 UML 的新选项。EclipseUML 的免费版本仅支持类图,因此右侧的惟一选项是 UML Class Diagram。请选择 UML Class Diagram,然后为该类图键入一个名称,比如“Hello”:
编辑器区域中将会出现一个图形编辑器,它带有用于绘制类图的画布。您可以通过两种方式创建类图:通过将 Java 文件从 Package Explorer 拖放到类图上,从而对现有代码进行逆向工程;或者使用空白类图上面工具栏中可用的绘制工具。要试验第一种方法,请创建一个名为 Person 的新类(使用 File=&New=&Class),然后赋予它下面列出的两个私有属性:
/** Person.java
* @author david
public class Person {
* Returns the address.
* @return Address
public Address getAddress() {
* Returns the name.
* @return String
public String getName() {
* Sets the address.
* @param address The address to set
public void setAddress(Address address) {
this.address =
* Sets the name.
* @param name The name to set
public void setName(String name) {
this.name =
(应该承认,我仅键入了针对 name 和 address 的行。getter 和 setter 方法是通过 Eclipse 自动生成的,即右键单击源代码,然后从弹出菜单上选择 Source=&Generate Getter and Setter 。)
请保存并关闭 Person.java Hello.ucd。
要从 UML 创建 Java 类,请单击类图窗口顶部工具栏上的“New class”按钮,即左起第三个按钮,然后单击类图。当 New 类向导打开时,请键入 Adress 作为类名称,然后按 Finish。
您可以右键单击类名称并选择 New=&Attribute,从而给类添加属性。在 New 属性对话框中,请输入属性名称、类型和可见性。然后右键单击类名称并选择 New=&Method 来添加方法。
当您更改类图时,图下面的 Source Editor 窗口将反映所做的更改。最后,您可以单击 Association 按钮(左起第五个),绘制一条从 Person 类指向 Address 类的线段,从而绘制这两个类之间的关系图。这样会调出另外一个对话框,您可以在其中输入关联属性(请参考 EclipseUML 帮助,以了解关于必需信息的更多内容)。完成后的图应该类似如下:
这个 UML 插件展示了 Eclipse 插件的几个典型特点。首先,它展示了工具之间的紧密集成。表面上绝对无法看出有多个组件在工作;与 Eclipse 平台和 JDT 的集成是无缝的。例如,当 Person 类被创建时,它显示语法错误是因为它的一个属性 Address 没有定义。一旦 Address 类在 UML 图中创建完成,这些组件就会分开显示出来。
另一个特点是 EclipseUML 利用其他插件提供的功能的能力——在此例中是 GEF 插件,它提供用于开发可视化编辑器的工具。
还有另一个特点涉及 EclipseUML 插件使用多层次功能来分发的方式。支持类图的基本插件是免费的,但是更成熟的版本要付费才能使用。
Eclipse 平台是一个具有一组强大服务的框架,这些服务支持插件,比如 JDT 和插件开发环境(PDE)。它由几个主要的部分构成:平台运行库、工作区、工作台、团队支持和帮助。
平台平台运行库是内核,它在启动时检查已安装了哪些插件,并创建关于它们的注册表信息。为降低启动时间和资源使用,它在实际需要任何插件时才加载该插件。除了内核外,其他每样东西都是作为插件来实现的。
工作区 工作区是负责管理用户资源的插件。这包括用户创建的项目、那些项目中的文件,以及文件变更和其他资源。工作区还负责通知其他插件关于资源变更的信息,比如文件创建、删除或更改。
工作台 工作台为 Eclipse 提供用户界面。它是使用标准窗口工具包(SWT)和一个更高级的 API(JFace)来构建的;SWT 是 Java 的 Swing/AWT GUI API 的非标准替代者,JFace 则建立在 SWT 基础上,提供用户界面组件。
SWT 已被证明是 Eclipse 最具争议的部分。SWT 比 Swing 或 SWT 更紧密地映射到底层操作系统的本机图形功能,这不仅使得 SWT 更快速,而且使得 Java 程序具有更像本机应用程序的外观和感觉。使用这个新的 GUI API可能会限制 Eclipse 工作台的可移植性,不过针对大多数流行操作系统的 SWT 移植版本已经可用。
Eclipse 对 SWT 的使用只会影响 Eclipse 自身的可移植性——使用 Eclipse 构建的任何 Java 应用程序都不会受到影响,除非它们使用 SWT 而不是使用 Swing/AWT。
团队支持团队支持组件负责提供版本控制和配置管理支持。它根据需要添加视图,以允许用户与所使用的任何版本控制系统(如果有的话)交互。大多数插件都不需要与团队支持组件交互,除非它们提供版本控制服务。
帮助 帮助组件具有与 Eclipse 平台本身相当的可扩展能力。与插件向 Eclipse 添加功能相同,帮助提供一个附加的导航结构,允许工具以 HTML 文件的形式添加文档。
围绕 Eclipse 的开发正处于关键阶段。主要软件工具提供商都参与进来了,并且开放源代码 Eclipse 插件项目的数量正在与日俱增。
可移植、可扩展、开放源代码的框架并不是个新思想(您会想起 Emacs),但是由于它成熟、健壮和优雅的设计,Eclipse 带来了全新的动力。IBM 价值 4000 万美元的世界级软件在开放源代码领域的发布,给业界带来了久违的震撼。
获得 Eclipse 的文档、文章以及下载 Eclipse。
浏览完整的 。
下载流行的 ;您需要注册,不过该插件是免费的。
关于开放源代码软件的信息,包括诸如公共通用许可证这样的认证开放源代码许可证,可在
关于 copyleft 的权威解释可在
— dzmonkey @ 11:05 pm
eclispe想必大家都很熟悉了,一般来说,eclipse插件都是安装在plugins目录下。不过这样一来,当安装了许多插件之后,eclipse变的很大,最主要的是不便于更新和管理众多插件。用links方式安装eclipse插件,可以解决这个问题。
当前配置XP SP1,eclipse3.0.1
现在假设我的eclipse安装目录是D:\eclipse,待安装插件目录是D:\plug-in ,我将要安装LanguagePackFeature(语言包)、emf-sdo-xsd-SDK、GEF-SDK、Lomboz这四个插件。
先把这四个插件程序全部放在D:\plug-in目录里,分别解压。如Lomboz3.0.1.zip解压成Lomboz3.0.1目录,这个目录包含一个plugins目录,要先在Lomboz3.0.1目录中新建一个子目录eclipse,然后把plugins目录移动到刚建立的eclipse目录中,即目录结构要是这样的:D:\plug-in\Lomboz3.0.1\eclipse\plugins
Eclipse 将会到指定的目录下去查找 eclipse\features 目录和eclipse\plugins 目录,看是否有合法的功能部件和(或)插件。也就是说,目标目录必须包含一个 \eclipse 目录。如果找到,附加的功能部件和插件在运行期配置是将是可用的,如果链接文件是在工作区创建之后添加的,附加的功能部件和插件会作为新的配置变更来处理。
其它压缩文件解压后若已经包含eclipse\plugins目录,则不需要建立eclipse目录。
然后在 eclipse安装目录D:\eclipse目录中建立一个子目录links,在links目录中建立一个link文件,比如 LanguagePackFeature.link,改文件内容为
path=D:/plug-in/LanguagePackFeature
即这个link文件要对应一个刚解压后的插件目录。
 1. 插件可以分别安装在多个自定义的目录中。
 2. 一个自定义目录可以安装多个插件。
 3. link文件的文件名及扩展名可以取任意名称,比如ddd.txt,myplugin都可以。
 4. link文件中path=插件目录的path路径分隔要用\\或是/
 5. 在links目录也可以有多个link文件,每个link文件中的path参数都将生效。
 6. 插件目录可以使用相对路径。
7. 可以在links目录中建立一个子目录,转移暂时不用的插件到此子目录中,加快eclipse启动。
如果安装后看不到插件,把eclipse 目录下的configuration目录删除,重启即可。
注意:关于用links方式安装Lomboz插件,在编辑EJB时可能会产生问题,这个将会在有关Lomboz插件的文章中探讨。
— dzmonkey @ 11:01 pm
下载免费的JSmooth软件并安装,我的是JSmooth0.9.7版本,执行JSmoothGen进入主界面。左面工具栏上有五项内容:Skeleton, Executable, Application, JVM Selection, JVM Configuration。
Skeleton:要设置生成exe文件的样式 Console Wrapper:控制台模式 Windowed Wrapper:windows窗口模式 下面的属性设置是关于如果执行此exe文件的机器没有jre环境的话,显示的信息和转向的URL地址
Executable: Executable Binary:设置要生成的exe文件的名字,如test.exe(exe扩展名必须要写) Executable Icon:设置要生成的exe文件的图标 Current Directory: 当前目录
Application: Embedded jar:导入打好包的jar存档文件(要求是没有主类入口的jar包,创建方法看这里) Main class:前面的jar包导入以后,就可以选择存档文件的那些class文件那个是主类文件,即程序入口了 Classpath:如果class文件不在包中的话,那可以不填写;如果class文件属于某个包的话,就要将classpath指入class文件的物理路径(注意不是jar文件的路径,是物理路径,即当前路径下可见所有的class文件)
JVM Selection, JVM Configuration:设置程序要求的最低最高JVM版本,初始化内存分配和最大内存限制
配置好这些参数以后,就可以编译运行了!
但是个人感觉编译的时候经常会出现失败的情况,如果不是classpath错了的话,那就等一会在点击几遍左边的工具栏就能编译成功了。而且JSmooth生成的exe文件只针对windows操作系统,并且只能在装有jre的环境下使用,还好如果没有jre的话,程序会自动连接相关网站下载,还是比较方便的,最好的还是程序执行的时候没有了讨厌的后台DOS窗口了,哈哈!!
— dzmonkey @ 8:54 pm
如果你写的.class类文件不在某一个包里的话,那就容易一些了,比如文件夹test中有一些生成好的class文件,那就在DOS窗口中进入test文件夹,执行命令:jar cf test.jar *.class
test.jar是要生成的jar文件名,*.class表示你要打包所有的class文件,当然只可以打包几个class文件,那就罗列在后面就可以了,不要忘了用空格键隔开。
这时就生成了一个test.jar存档文件,默认它的目录结构为test.jar
meta-inf + *.class
manifest.mfmanifest.mf这个文件是一个清单文件,默认情况下它的内容为:Manifest-Version: 1.0Created-By: 1.4.1_02 (Sun Microsystems Inc.)但是这只是一个普通的jar清单,如果想要做成可执行的jar文件的话,必须要在清单上制定一个程序主类入口,即Main-Class,我搜索到了很多修改manifest.mf文件的方法,但是我觉得还是下面这种方法最简单,说说:直接用UltraEdit打开原来的manifest.mf文件,在最后面加入主类的路径,manifest.mf文件变成:Manifest-Version: 1.0Created-By: 1.4.1_02 (Sun Microsystems Inc.)Main-Class: main尤其注意两点:1、Main-Class一行末尾必须有一个换行符2、Main-Class的冒号后面一定要有一个空格(我惨痛教训带来的经验,牢记牢记)这样就做好了一个新的带主类的manifest.mf文件,覆盖掉原来jar文件中的manifest.mf文件,ok,一个可执行的jar包就完成了! 试试在DOS窗口执行:java -jar test.jar是不是成功了呢?!
哈哈,我倒是觉得可以写一个批处理文件更方便一些。
如果待存档的class文件是属于在包中呢? 大致步骤是一样的,注意几点:第一步作jar包的时候:jar cf test.jar testPackage
(testPackage是包所对应的文件夹名),这样testPackage文件夹中的所有类就打进了test.jar中,目录结构如下:test.jar
meta-inf + testPackage
manifest.mf
testPackage
*.class后面修改manifest.mf文件的方法是一样的,只是写主类路径的时候要把包路径信息写进去,“Main-Class: testPackage.main”。
当然可以将程序中用到的图片也存入jar文件中去,这样方便多了,不过要注意路径哦。
— dzmonkey @ 8:52 pm
说明:本文为作者原创,作者联系地址为:。由于Java编程中的中文问题是一个老生常谈的问题,在阅读了许多关于Java中文问题解决方法之后,结合作者的编程实践,我发现过去谈的许多方法都不能清晰地说明问题及解决问题,尤其是跨平台时的中文问题。于是我给出此篇文章,内容包括对控制台运行的class、Servelets、JSP及EJB类中的中文问题我剖析和建议解决办法。希望大家指教。任何引用本文请注明出处!!
Abstract:本文深入分析了Java程序设计中Java编译器对java源文件和JVM对class类文件的编码/解码过程,通过此过程的解析透视出了Java编程中中文问题产生的根本原因,最后给出了建议的最优化的解决Java中文问题的方法。
1、中文问题的来源
计算机最初的操作系统支持的编码是单字节的字符编码,于是,在计算机中一切处理程序最初都是以单字节编码的英文为准进行处理。随着计算机的发展,为了适应世界其它民族的语言(当然包括我们的汉字),人们提出了UNICODE编码,它采用双字节编码,兼容英文字符和其它民族的双字节字符编码,所以,目前,大多数国际性的软件内部均采用UNICODE编码,在软件运行时,它获得本地支持系统(多数时间是操作系统)默认支持的编码格式,然后再将软件内部的UNICODE转化为本地系统默认支持的格式显示出来。Java的JDK和JVM即是如此,我这里说的JDK是指国际版的JDK,我们大多数程序员使用的是国际化的JDK版本,以下所有的JDK均指国际化的JDK版本。我们的汉字是双字节编码语言,为了能让计算机处理中文,我们自己制定的gb2312、GBK、GBK2K等标准以适应计算机处理的需求。所以,大部分的操作系统为了适应我们处理中文的需求,均定制有中文操作系统,它们采用的是GBK,GB2312编码格式以正确显示我们的汉字。如:中文Win2K默认采用的是GBK编码显示,在中文WIN2k中保存文件时默认采用的保存文件的编码格式也是GBK的,即,所有在中文WIN2K中保存的文件它的内部编码默认均采用GBK编码,注意:GBK是在GB2312基础上扩充来的。
由于Java语言内部采用UNICODE编码,所以在JAVA程序运行时,就存在着一个从UNICODE编码和对应的操作系统及浏览器支持的编码格式转换输入、输出的问题,这个转换过程有着一系列的步骤,如果其中任何一步出错,则显示出来的汉字就会出是乱码,这就是我们常见的JAVA中文问题。
同时,Java是一个跨平台的编程语言,也即我们编写的程序不仅能在中文windows上运行,也能在中文Linux等系统上运行,同时也要求能在英文等系统上运行(我们经常看到有人把在中文win2k上编写的JAVA程序,移植到英文Linux上运行)。这种移植操作也会带来中文问题。
还有,有人使用英文的操作系统和英文的IE等浏览器,来运行带中文字符的程序和浏览中文网页,它们本身就不支持中文,也会带来中文问题。
有,几乎所有的浏览器默认在传递参数时都是以UTF-8编码格式来传递,而不是按中文编码传递,所以,传递中文参数时也会有问题,从而带来乱码现象。
总之,以上几个方面是JAVA中的中文问题的主要来源,我们把以上原因造成的程序不能正确运行而产生的问题称作:JAVA中文问题。2、JAVA编码转换的详细过程
我们常见的JAVA程序包括以下类别:
*直接在console上运行的类(包括可视化界面的类)
*JSP代码类(注:JSP是Servlets类的变型)
*Servelets类
*其它不可以直接运行的支持类
这些类文件中,都有可能含有中文字符串,并且我们常用前三类JAVA程序和用户直接交互,用于输出和输入字符,如:我们在JSP和Servlet中得到客户端送来的字符,这些字符也包括中文字符。无论这些JAVA类的作用如何,这些JAVA程序的生命周期都是这样的:
*编程人员在一定的操作系统上选择一个合适的编辑软件来实现源程序代码并以.java扩展名保存在操作系统中,例如我们在中文win2k中用记事本编辑一个java源程序;
*编程人员用JDK中的javac.exe来编译这些源代码,形成.class类(JSP文件是由容器调用JDK来编译的);
*直接运行这些类或将这些类布署到WEB容器中去运行,并输出结果。
那么,在这些过程中,JDK和JVM是如何将这些文件如何编码和解码并运行的呢?
这里,我们以中文win2k操作系统为例说明JAVA类是如何来编码和被解码的。
第一步,我们在中文win2k中用编辑软件如记事本编写一个Java源程序文件(包括以上五类JAVA程序),程序文件在保存时默认采用了操作系统默认支持GBK编码格式(操作系统默认支持的格式为file.encoding格式)形成了一个.java文件,也即,java程序在被编译前,我们的JAVA源程序文件是采用操作系统默认支持的file.encoding编码格式保存的,java源程序中含有中文信息字符和英文程序代码;要查看系统的file.encoding参数,可以用以下代码:public class ShowSystemDefaultEncoding {public static void main(String[] args) {String encoding = System.getProperty(“file.encoding”);System.out.println(encoding);}}
第二步,我们用JDK的javac.exe文件编译我们的Java源程序,由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。
这一步中,对于JSP源程序文件是不同的,对于JSP,这个过程是这样的:即WEB容器调用JSP编译器,JSP编译器先查看JSP文件中是否设置有文件编码格式,如果JSP文件中没有设置JSP文件的编码格式,则JSP编译器调用JDK先把JSP文件用JVM默认的字符编码格式(也即WEB容器所在的操作系统的默认的file.encoding)转化为临时的Servlet类,然后再把它编译成UNICODE格式的class类,并保存在临时文件夹中。如:在中文win2k上,WEB容器就把JSP文件从GBK编码格式转化为UNICODE格式,然后编译成临时保存的Servlet类,以响应用户的请求。
第三步,运行第二步编译出来的类,分为三种情况:
A、 直接在console上运行的类
B、 EJB类和不可以直接运行的支持类(如JavaBean类)
C、 JSP代码和Servlet类
D、 JAVA程序和数据库之间
下面我们分这四种情况来看。
A、直接在console上运行的类
这种情况,运行该类首先需要JVM支持,即操作系统中必须安装有JRE。运行过程是这样的:首先java启动JVM,此时JVM读出操作系统中保存的class文件并把内容读入内存中,此时内存中为UNICODE格式的class类,然后JVM运行它,如果此时此类需要接收用户输入,则类会默认用file.encoding编码格式对用户输入的串进行编码并转化为unicode保存入内存(用户可以设置输入流的编码格式)。程序运行后,产生的字符串(UNICODE编码的)再回交给JVM,最后JRE把此字符串再转化为file.encoding格式(用户可以设置输出流的编码格式)传递给操作系统显示接口并输出到界面上。
对于这种直接在console上运行的类,它的转化过程可用图1更加明确的表示出来:
以上每一步的转化都需要正确的编码格式转化,才能最终不出现乱码现象。
B、EJB类和不可以直接运行的支持类(如JavaBean类)
由于EJB类和不可以直接运行的支持类,它们一般不与用户直接交互输入和输出,它们常常与其它的类进行交互输入和输出,所以它们在第二步被编译后,就形成了内容是UNICODE编码的类保存在操作系统中了,以后只要它与其它的类之间的交互在参数传递过程中没有丢失,则它就会正确的运行。这种EJB类和不可以直接运行的支持类, 它的转化过程可用图2更加明确的表示出来:
C、JSP代码和Servlet类
经过第二步后,JSP文件也被转化为Servlets类文件,只不过它不像标准的Servlets一校存在于classes目录中,它存在于WEB容器的临时目录中,故这一步中我们也把它做为Servlets来看。
对于Servlets,客户端请求它时,WEB容器调用它的JVM来运行Servlet,首先,JVM把Servlet的class类从系统中读出并装入内存中,内存中是以UNICODE编码的Servlet类的代码,然后JVM在内存中运行该Servlet类,如果Servlet在运行的过程中,需要接受从客户端传来的字符如:表单输入的值和URL中传入的值,此时如果程序中没有设定接受参数时采用的编码格式,则WEB容器会默认采用ISO-8859-1编码格式来接受传入的值并在JVM中转化为UNICODE格式的保存在WEB容器的内存中。Servlet运行后生成输出,输出的字符串是UNICODE格式的,紧接着,容器将Servlet运行产生的UNICODE格式的串(如html语法,用户输出的串等)直接发送到客户端浏览器上并输出给用户,如果此时指定了发送时输出的编码格式,则按指定的编码格式输出到浏览器上,如果没有指定,则默认按ISO-8859-1编码发送到客户的浏览器上。这种JSP代码和Servlet类,它的转化过程可用图3更加明确地表示出来:
D、Java程序和数据库之间
对于几乎所有数据库的JDBC驱动程序,默认的在JAVA程序和数据库之间传递数据都是以ISO-8859-1为默认编码格式的,所以,我们的程序在向数据库内存储包含中文的数据时,JDBC首先是把程序内部的UNICODE编码格式的数据转化为ISO-8859-1的格式,然后传递到数据库中,在数据库保存数据时,它默认即以ISO-8859-1保存,所以,这是为什么我们常常在数据库中读出的中文数据是乱码。
对于JAVA程序和数据库之间的数据传递,我们可以用图4清晰地表示出来
3、分析常见的JAVA中文问题几个必须清楚的原则
首先,经过上面的详细分析,我们可以清晰地看到,任何JAVA程序的生命期中,其编码转换的关键过程是在于:最初编译成class文件的转码和最终向用户输出的转码过程。
其次,我们必须了解JAVA在编译时支持的、常用的编码格式有以下几种:
*ISO--bit, 同8859_1,ISO-8859-1,ISO_8859_1等编码
*Cp1252,美国英语编码,同ANSI标准编码
*UTF-8,同unicode编码
*GB2312,同gb2312-80,gb等编码
*GBK , 同MS936,它是gb2312的扩充
及其它的编码,如韩文、日文、繁体中文等。同时,我们要注意这些编码间的兼容关体系如下:
unicode和UTF-8编码是一一对应的关系。GB2312可以认为是GBK的子集,即GBK编码是在gb2312上扩展来的。同时,GBK编码包含了20902个汉字,编码范围为:0×8140-0xfefe,所有的字符可以一一对应到UNICODE2.0中来。
再次,对于放在操作系统中的.java源程序文件,在编译时,我们可以指定它内容的编码格式,具体来说用-encoding来指定。注意:如果源程序中含有中文字符,而你用-encoding指定为其它的编码字符,显然是要出错的。用-encoding指定源文件的编码方式为GBK或gb2312,无论我们在什么系统上编译含有中文字符的JAVA源程序都不会有问题,它都会正确地将中文转化为UNICODE存储在class文件中。
然后,我们必须清楚,几乎所有的WEB容器在其内部默认的字符编码格式都是以ISO-8859-1为默认值的,同时,几乎所有的浏览器在传递参数时都是默认以UTF-8的方式来传递参数的。所以,虽然我们的Java源文件在出入口的地方指定了正确的编码方式,但其在容器内部运行时还是以ISO-8859-1来处理的。
4、中文问题的分类及其建议最优解决办法
了解以上JAVA处理文件的原理之后,我们就可以提出了一套建议最优的解决汉字问题的办法。
我们的目标是:我们在中文系统中编辑的含有中文字符串或进行中文处理的JAVA源程序经编译后可以移值到任何其它的操作系统中正确运行,或拿到其它操作系统中编译后能正确运行,能正确地传递中文和英文参数,能正确地和数据库交流中英文字符串。
我们的具体思路是:在JAVA程序转码的入口和出口及JAVA程序同用户有输入输出转换的地方限制编码方法使之正确即可。
具体解决办法如下:
1、 针对直接在console上运行的类
对于这种情况,我们建议在程序编写时,如果需要从用户端接收用户的可能含有中文的输入或含有中文的输出,程序中应该采用字符流来处理输入和输出,具体来说,应用以下面向字符型节点流类型:
对文件:FileReader,FileWrieter
其字节型节点流类型为:FileInputStream,FileOutputStream
对内存(数组):CharArrayReader,CharArrayWriter
其字节型节点流类型为:ByteArrayInputStream,ByteArrayOutputStream
对内存(字符串):StringReader,StringWriter
对管道:PipedReader,PipedWriter
其字节型节点流类型为:PipedInputStream,PipedOutputStream
同时,应该用以下面向字符型处理流来处理输入和输出:
BufferedWriter,BufferedReader
其字节型的处理流为:BufferedInputeStream,BufferedOutputStream
InputStreamReader,OutputStreamWriter
其字节型的处理流为:DataInputStream,DataOutputStream
其中InputStreamReader和InputStreamWriter用于将字节流按照指定的字符编码集转换到字符流,如:
InputStreamReader in = new InputStreamReader(System.in,”GB;);
OutputStreamWriter out = new OutputStreamWriter (System.out,”GB;);
例如:采用如下的示例JAVA编码就达到了要求://Read.javaimport java.io.*;public class Read {public static void main(String[] args) throws IOException {String str = “\n中文测试,这是内部硬编码的串”+”\ntest english character”;String strin= “”;BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in,”gb;)); //设置输入接口按中文编码BufferedWriter stdout = new BufferedWriter(new OutputStreamWriter(System.out,”gb;)); //设置输出接口按中文编码stdout.write(“请输入:”);stdout.flush();strin = stdin.readLine();stdout.write(“这是从用户输入的串:”+strin);stdout.write(str);stdout.flush();}}
同时,在编译程序时,我们用以下方式来进行:
javac -encoding gb2312 Read.java 2、 针对EJB类和不可以直接运行的支持类(如JavaBean类)
由于这种类它们本身被其它的类调用,不直接与用户交互,故对这种类来说,我们的建议的处理方式是内部程序中应该采用字符流来处理程序内部的中文字符串(具体如上面一节中一样),同时,在编译类时用-encoding gb2312参数指示源文件是中文格式编码的即可。
3、 针对Servlet类针对Servlet,我们建议用以下方法:
在编译Servlet类的源程序时,用-encoding指定编码为GBK或GB2312,且在向用户输出时的编码部分用response对象的setContentType(“text/charset=GBK”);或gb2312来设置输出编码格式,同样在接收用户输入时,我们用request.setCharacterEncoding(“GB;);这样无论我们的servlet类移植到什么操作系统中,只有客户端的浏览器支持中文显示,就可以正确显示。如下是一个正确的示例://HelloWorld.javaimport java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HelloWorld extends HttpServlet{public void init() throws ServletException { }public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{request.setCharacterEncoding(“GB;); //设置输入编码格式response.setContentType(“text/charset=GB;); //设置输出编码格式PrintWriter out = response.getWriter(); //建议使用PrintWriter输出out.println(“&hr&”);out.println(“Hello World! This is created by Servlet!测试中文!”);out.println(“&hr&”);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{request.setCharacterEncoding(“GB;); //设置输入编码格式response.setContentType(“text/charset=GB;); //设置输出编码格式String name = request.getParameter(“name”);String id = request.getParameter(“id”);if(name==null) name=”";if(id==null) id=”";PrintWriter out = response.getWriter(); //建议使用PrintWriter输出out.println(“&hr&”);out.println(“你传入的中文字串是:” + name);out.println(“&hr&你输入的id是:” + id);out.println(“&hr&”);}public void destroy() { }}
请用javac -encoding gb2312 HelloWorld.java来编译此程序。
测试此Servlet的程序如下所示:&%@page contentType=”text/ charset=gb;%&&%request.setCharacterEncoding(“GB;);%&&html&&head&&title&&/title&&Script language=”JavaScript”&function Submit() {//通过URL传递中文字符串值给Servletdocument.base.action = “./HelloWorld?name=中文”;document.base.method = “POST”;document.base.submit();}&/Script&&/head&&body bgcolor=”#FFFFFF” text=&#″ topmargin=+&&form name=”base” method = “POST” target=”_self”&&input name=”id” type=”text” value=”" size=+&&a href = “JavaScript:Submit()”&传给Servlet&/a&&/form&&/body&&/html&4、 JAVA程序和数据库之间
为避免JAVA程序和数据库之间数据传递出现乱码现象,我们建议采用以下最优方法来处理:
1、 对于JAVA程序的处理方法按我们指定的方法处理。
2、 把数据库默认支持的编码格式改为GBK或GB2312的。
如:在mysql中,我们可以在配置文件my.ini中加入以下语句实现:
在[mysqld]区增加:
default-character-set=gbk
default-character-set=gbk
在SQL Server2K中,我们可以将数据库默认的语言设置为Simplified Chinese来达到目的。
5、 针对JSP代码
由于JSP是在运行时,由WEB容器进行动态编译的,如果我们没有指定JSP源文件的编码格式,则JSP编译器会获得服务器操作系统的file.encoding值来对JSP文件编译的,它在移植时最容易出问题,如在中文win2k中可以很好运行的jsp文件拿到英文linux中就不行,尽管客户端都是一样的,那是因为容器在编译JSP文件时获取的操作系统的编码不同造成的(在中文wink中的file.encoding和在英文Linux中file.encoding是不同的,且英文Linux的file.encoding对中文不支持,所以编译出来的JSP类就会有问题)。网络上讨论的大多数是此类问题,多是因为JSP文件移植平台时不能正确显示的问题,对于这类问题,我们了解了JAVA中程序编码转换的原理,解决起来就容易多了。我们建议的解决办法如下:
1、我们要保证JSP向客户端输出时是采用中文编码方式输出的,即无论如何我们首先在我们的JSP源代编中加入以下一行:
&%@page contentType=”text/ charset=gb;%&
2、为了让JSP能正确获得传入的参数,我们在JSP源文件头加入下面一句:
&%request.setCharacterEncoding(“GB;);%&
3、为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件,我们需要在JSP源文件中指定我们的JSP源文件的编码格式,具体来说,我们在JSP源文件头上加入下面的一句即可:
&%@page pageEncoding=”GB;%&或&%@page pageEncoding=”GBK”%&
这是JSP规范2.0新增加的指令。
我们建议使用此方法来解JSP文件中的中文问题,下面的代码是一个正确做法的JSP文件的测试程序://testchinese.jsp&%@page pageEncoding=”GB;%&&%@page contentType=”text/ charset=gb;%&&%request.setCharacterEncoding(“GB;);%&&%String action = request.getParameter(“ACTION”);String name = “”;String str = “”;if(action!=null && action.equals(“SENT”)){name = request.getParameter(“name”);str = request.getParameter(“str”);}%&&html&&head&&title&&/title&&Script language=”JavaScript”&function Submit(){document.base.action = “?ACTION=SENT&str=传入的中文”;document.base.method = “POST”;document.base.submit();}&/Script&&/head&&body bgcolor=”#FFFFFF” text=&#″ topmargin=+&&form name=”base” method = “POST” target=”_self”&&input type=”text” name=”name” value=”" size=+&&a href = “JavaScript:Submit()”&提交&/a&&/form&&%if(action!=null && action.equals(“SENT”)){out.println(“&br&你输入的字符为:”+name);out.println(“&br&你通过URL传入的字符为:”+str);}%&&/body&&/html& 5、总结
在上面的详细分析中,我们清晰地给出了JAVA在处理源程序过程中的详细转换过程,为我们正确解决JAVA编程中的中文问题提供了基础。同时,我们给出了认为是最优的解决JAVA中文问题的办法。
6、参考资料
1、段明辉.Java 编程技术中汉字问题的分析及解决.
http://www-/developerWorks/cn/java/java_chinese/index.shtml
2、 周竞涛.关于Java中文问题的几条分析原则
http://www-/developerWorks/cn/java/l-javachinese/index.shtml
— dzmonkey @ 8:46 pm
1、Applet/JApplet:
repaint+paint
— dragged, paint repaint+update+paint
— dragged, update
repaint+paint — 自动重画
repaint+update –
不自动重画
JApplet:都不自动重画
结论:awt组件中的paint方法自动重画背景,实际上可以说是update方法自动重画背景,由于重写了update方法,所以不自动重画了!!
双缓冲:update中画背景缓冲,paint中将背景缓冲绘制到前台图形中
2 、Frame/JFrame: repaint+paint
— dragged, paint repaint+update+paint
— dragged, update
repaint+paint — 自动重画
repaint+update –
不自动重画
JFrame: 都不自动重画
问题:双缓冲时,因为背景Frame/JFrame是不可显示的(isDisplayable()),所以无法执行createImage()方法,难道基于框架的绘图不支持双缓冲?
3、 Panel: repaint+paint
— dragged, paint repaint+update+paint
— dragged, update repaint不执行paintComponent
JPanel: repaint+update+paint
— dragged, update repaint+paint+paintComponent
— dragged, paint repaint+paintComponent
— dragged, paintComponent repaint执行paintComponent, 不执行paintComponents, 使用super.paintComponent(g)可达到填充背景的目的。
— dzmonkey @ 8:46 pm
总体设想:让WinXP更苗条、性感、速度更快,使用更便捷。
为了达到这个目的,我们主要从四个方面入手:1、减少磁盘空间占用2、终止不常用的系统服务3、安全问题4、另外一些技巧首先问一下,你是不是很想激活XP,不。。。准确的说你是不是想在ms的站上能够升级。如果答案是肯定的话,那我们就先来探讨一下安装的问题,目前流行的V4、V5、V6版本我还是比较推荐的,尤其是V5和V6这两个。安装的过程中有个序列号的问题,我建议你先在机子上算好,然后用这个序列号安装,通常这样安装的XP都可以到MS的站点自由更新。如果你是已经安装好的XP了,但用的序列号是里到处流传人人都用的那些,也没关系,我们后面会说用sysrep来重新封装的时候会解决序列号更换的问题。我假设你已经安装完XP了,come on baby ~~一、瘦身行动1、在各种软硬件安装妥当之后,其实XP需要更新文件的时候就很少了。删除系统备份文件吧:开始→运行→sfc.exe /purgecache 近3xxM。2、删除驱动备份: %windows%\driver cache\i386目录下的driver.cab文件,通常这个文件是76M。3、偶没有看help的习惯,所以保留着%windows%\help目录下的东西对我来说是一种伤害,呵呵。。。都干掉,近4xM。4、一会在升级完成后你还会发现%windows%\多了许多类似$NtUninstallQ311889$这些目录,都干掉吧,1x-3xM。5、正好硬盘中还有win2000/server等,所以顺便把pagefile.sys文件都指向一个地方:控制面板→系统→性能—高级→虚拟内存→更改,注意要点“设置”才会生效。6、卸载不常用组件:用记事本修改\%windows%\inf\sysoc.inf,用查找/替换功能,在查找框中输入,hide,全部替换为空。这样,就把所有的,hide都去掉了,存盘退出后再运行“添加-删除程序”,就会看见“添加/删除 Windows 组件”中多出不少选项;删除掉游戏啊,码表啊等不用的东西。7、刪除\windows\ime下不用的輸入法,8xM。我重新安装了自己用的zrm输入法,赫赫。
8、如果实在空间紧张,启用NTFS的压缩功能,这样还会少用2x% 的空间,不过我没作。
9、关了系统还原,这破功能对我这样常下载、测试软件的人来说简直是灾难,用鼠标右健单击桌面上的“我的电脑”,选择“属性”,找到“系统还原”,选择“在所有驱动器上关闭系统还原”呵呵,又可以省空间了。10、还有几个文件,挺大的,也没什么用。。。。忘了名字 :( ,刚安装的系统可以用查找功能查找大于50M的文件来看看,应该能找到的。如果你能按照上面的过程做完,你的原本1.4G的XP,完全可以减少到800以下。二、加速计划WinXP的启动会有许多影响速度的功能,尽管ms说已经作最优化处理过,但对我们来说还是有许多可定制之处。我一般是这样来做的。1、修改注册表的run键,取消那几个不常用的东西,比如Windows Messenger 。启用注册表管理器:开始→运行→Regedit→找到“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\MSMSGS” /BACKGROUND 这个键值,右键→删除,世界清静多了,顺便把那几个什么cfmon的都干掉吧。2、修改注册表来减少预读取,减少进度条等待时间,效果是进度条跑一圈就进入登录画面了,开始→运行→regedit启动注册表编辑器,找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters, 有一个键EnablePrefetcher把它的数值改为“1”就可以了。另外不常更换硬件的朋友可以在系统属性中把总线设备上面的设备类型设置为none(无)。3、关闭系统属性中的特效,这可是简单有效的提速良方。点击开始→控制面板→系统→高级→性能→设置→在视觉效果中,设置为调整为最佳性能→确定即可。这样桌面就会和win2000很相似的,我还是挺喜欢XP的蓝色窗口,所以在“在窗口和按钮上使用视觉样式”打上勾,这样既能看到漂亮的蓝色界面,又可以加快速度。4、我用Windows commadner+Winrar来管理文件,Win XP的ZIP支持对我而言连鸡肋也不如,因为不管我需不需要,开机系统就打开个zip支持,本来就闲少的系统资源又少了一分,点击开始→运行,敲入:“regsvr32 /u zipfldr.dll”双引号中间的,然后回车确认即可,成功的标志是出现个提示窗口,内容大致为:zipfldr.dll中的Dll UnrgisterServer成功。5、据说XP的一个系统服务Qos,这个调度要占用一定的网络带宽,像我这样的一毛不拔的人是无法忍受的,去掉方法是:开始菜单→运行→键入 gpedit.msc ,出现“组策略”窗口, 展开 “管理模板”→“网络” , 展开 “QoS 数据包调度程序”, 在右边窗右键单击“限制可保留带宽” ,在属性中的“设置”中有“限制可保留带宽” ,选择“已禁用”,确定即可。当上述修改完成并应用后,用户在网络连接的属性对话框内的一般属性标签栏中如果能够看到”QoS Packet Scheduler(QoS 数据包调度程序)”。说明修改成功,否则说明修改失败,顺便把网络属性中的那个Qos 协议也一起干掉(卸载)吧。6、快速浏览局域网络的共享通常情况下,Windows XP在连接其它计算机时,会全面检查对方机子上所有预定的任务,这个检查会让你等上30秒钟或更多时间。去掉的方法是开始→运行→Regedit→在注册表中找到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Explorer\RemoteComputer\NameSpace。在此键值下,会有个{DC6A-11CF-8D87-00AA0060F5BF}键,把它删掉后,重新启动计算机,Windows XP就不再检查预定任务了,hoho~~~ ,速度明显提高啦!7、关掉调试器Dr. Watson我好像从win95年代开始一次也没用过这东西,可以这样取消:打开册表,找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug子键分支,双击在它下面的Auto键值名称,将其“数值数据”改为0,最后按F5刷新使设置生效,这样就取消它的运行了。沿用这个思路,我们可以把所有具备调试功能的选项取消,比如蓝屏时出现的memory.dmp,在“我的电脑→属性→高级→设置→写入调试信息→选择无”等等。8、被我终止的服务列表以及相关说明1)alerter 错误警报2)automatic updates windows 自动更新3)background intelligent transfer service 微软说使用空闲的网络带宽传数据4)clipbook 与远程电脑来共享剪贴板内容,我看还是免了吧5)Computer browser 说什么要维护网络更新列表6)DHCP client 我不需要这东西7)Distributed link tracking client 保持局域网连接更新等信息,偶很少用局域网,这东西占用4M左右内存。8)Distributed Transaction coordinator 协调xxx,和上面的差不多9)DNS Client 我不需要这东西10)Error reporting service 错误报告11)Event Log 系统日志纪录12)Fast user switching compatibility 用户切换13)help and support 帮助14)Human interface device access 据说是智能设备。。。15)IMAPI CD-burning COM service 偶不用这个刻碟16)Indexing service 索引,索引什么呢?17)Internet Connection Firewall(ICF) ICF防火墙18)IPSEC Services 这个我不懂,你想知道问Quack去19)Logical Disk manager administrative service 配置磁盘20)messenger 好像net send 等东西用的就是这个功能21)MS software shadow copy provider 卷复制备份的22)Net Logon 我可不想让黑客远程登录进来,关!23)Netmeeting remote desktop sharing 我不用netmeeting24)Network DDE  动态数据交换传输25)Network DDE DSDM 和上面差不多26)Network Location Awareness 关,我的机子不作共享27)NTLM Security support provider-telnet 呵呵,关!28)PerFORMance logs and alert 将系统状态写日志或发警告29)Portable media serial number 关!30)Print Spooler 打印机,不幸的是我的机子不连接Print ~31) QoS RSVP 关!32)Remote desktop help session manager 远程帮助服务33)remote Procedure Call LOCATOR 管理RPC34)remote registry 远程管理注册表35)removable storage 36)routing and remote access 我干脆禁用了它37)security accounts manager 我的系统只是一个客户系统,不用iis。38)smart card39)smart card helper 关!!!40)SSDP Discovery service 我用不到这个41)system event notification 如果是服务器肯定要记录的42)system restore service 系统还原服务43)task scheduler windows 计划服务44)Telephony 拨号服务,我不拨号还不行吗?45)telnet46)terminal services 终端服务47)uninterruptible power supply UPS,我没有呀48)universal plug and play device host 太先进了点,用不到49)upload manager 关了也能传输文件的50)volume shadow copy 又是备份,晕51)webclient 没用过52)Windows Installer MSI服务,我一直关着。53)windows image acquisition (WIA) 数码设备用的54)windows management instrumentation driver extensions 关了55)windows time 时间服务56)wireless zero configuration 无线网络,偶用不到的57)WMI perfromance adapter 关!这里面的一些服务是刚开始就是关的,但我忘了,所以只好把现在系统中关闭的服务基本都列了出来。你根据自己的情况酌情处理吧。三、我安全吗多了不谈,基本的共享还是得关的:修改注册表为以下两个样式:去除共享——————————————————————Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]“AutoShareServer”=dword:“AutoSharewks”=dword:——————————————————————去除IPC$管理——————————————————————Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]“restrictanonymous”=dword:——————————————————————或者将上面两个保存成个.REG文件,然后双击导入就可以了。顺便把不要脸的的3721也屏蔽,在hosts文件中加入:127.0.0.1 127.0.0.1 四、其他技巧1、给鼠标右键增加个复制到…/移动到…功能—————————————————————Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shellex][HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shellex\ContextMenuHandlers][HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shellex\ContextMenuHandlers\Copy To]@=”{C2FBB630--A18C-00C04FD75D13}”[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shellex\ContextMenuHandlers\Move To]@=”{C2FBB631--A18C-00C04FD75D13}”————————————————————————将上面内容保存成add.reg文件,然后双击导入就可以了。2、关了错误报告,KAO !这东西搞得我像个微软免费的测试员似的:点击控制面板—-&系统—-&高级—-&右下角—&错误报告—-&禁用错误汇报——&确定!3、取消分组显示:右键单击任务栏的空白区域,在弹出的菜单中选择“属性”,在弹出的窗口中,取消“分组相似任务栏按钮”前面的对钩,确定就可以了。4、找回经典的登录窗口,WinXP默认的登录界面虽然漂亮,但如果你想用一个列表中没有的用户登录,你会发现无从下手,改回经典窗口的方法是:点击“开始”→“控制面板”→“用户账户”→“更改用户登录或注销的方式”→把“使用欢迎屏幕”前面的对钩取消,最后点“应用选项”就OK啦。5、将自己最常用的输入法设置一个快捷键:点击“开始”→“控制面板”→“区域和语言选项”→在弹出的窗口中选择“语言”→“详细信息”→“键设置”在弹出的窗口中找到自己用的输入法,点“更改按键顺序”→在这里选一个快捷键就可以了。6、关闭计算机时自动结束不响应的任务,注册表:HKEY_CURRENT_USER\Control Panel\Desktop 中的“AugoEndTasks”的键值改为“1”7、关闭自动更新:右键单击“我的电脑”,点击属性,点击“自动更新”,在“通知设置”一栏选择“关闭自动更新。我将手动更新计算机”一项。8、减少开机磁盘扫描等待时间,开始→运行,键入“chkntfs/t:0”然后连接到ms站点顺便升级一次就算优化基本完成,对于XP而言,可以采用许多内部命令来看看优化情况,比如tasklist.exe /svc 可以查看系统服务实际使用情况。优化一个系统,挺麻烦的。所以我们把他保存起来,我们用Ghost生成.GHO文件,这样就可以拿给别人炫耀一下啦,在Ghost之前先要作一个事情,清除系统硬件、注册等信息,否则克隆到不同的机子上将无法启动,在Winxp安装盘上找Deploy.cab 中的sysprep.exe文件。执行sysprep.exe,选择“重新封装”,下面的标记中可以选择“已提前激活”,还可以选择封装完成后是关机还是重新启动。封装完成后,我们再用带有Ghost的系统盘启动,用Ghost来生成备份.GHO镜像,备份完成!在执行封装后,重新开机,XP会让我们输入序列号,文中开头所提到的换序列号的办法就是这样换。
— dzmonkey @ 8:01 pm

我要回帖

更多关于 eclipsor 的文章

 

随机推荐