第三篇 打造JAVA开发环境——EditPlus篇

《打造JAVA开发环境——EditPlus篇》是 打造全能的文本编辑器序列 的第三篇。介绍了在EditPlus中集成Java编译器、Java运行工具、Ant工具、Tomcat服务器、getter和setter方法生成器“插件”等内容。

笔者polaris一直在做JAVA开发,因而,对于个人常用编辑器,都会介绍如何打造jAVA开发环境。如果您是非JAVA程序员,一样能够参照着很方便地配置一个适合您的开发环境。下面让我们开始使用EditPlus搭建JAVA开发环境。

其实在文章《EditPlus使用技巧集萃》中已经介绍了如何在EditPlus中集成编译运行程序(包括多种语言的),在此稍微再重复一下。

EditPlus其实没有实际意义上的插件,它通过调用外部工具来达到扩展的目的,这就是工具的集成。操作是:通过《工具》菜单——《配置用户工具》来实现(最新版本3.2)。具体配置选项如图:
EditPlus
具体设置步骤:
① 设置组名称,这里也可以不设置
② 单击“添加工具→应用程序”按钮并进行如下设置
③ 各种类似”$(FilePath)”的参数可以在文本框右侧的箭头下拉菜单中获取,具体含义如下:
┌──────────────────────────────────┐
│参数 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 描述 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?│
├──────────────────────────────────┤
│$(FilePath) 文件路径(文件全名,含目录和文件名)│
├──────────────────────────────────┤
│$(FileDir) ? ? ? ? ? ? ? ? 文件目录(不带文件名) ? ? ? ? ? ? ? ? │
├──────────────────────────────────┤
│$(FileName) ? ? ? ? ? ? ? ?文件名(不带目录) ? ? ? ? ? ? ? ? ? ? │
├──────────────────────────────────┤
│$(FileNameNoExt) 不带扩展名的文件名(不带目录) │
├──────────────────────────────────┤
│$(FileExt) ? ? ? ? ? ? ? ? ? ? ? 扩展名(当前文件) ? ? ? ? ? ? ? ? ? ?│
├──────────────────────────────────┤
│$(ProjectName) ? ? ? ? ? ? 工程名称(当前工程名) ? ? ? │
├──────────────────────────────────┤
│$(CurLine) ? ? ? ? ? ? ? 当前行号(光标位置处的行号) ? ?│
├──────────────────────────────────┤
│$(CurCol) ? ? ? ? ? ? ? ?当前列号(光标位置处的列号) ? ? │
├──────────────────────────────────┤
│$(CurSel) ? ? ? ? ? ? ? ? ? ?当前文本(插入当前选定文本) │
├──────────────────────────────────┤
│$(CurWord) ? ? ? ? ? ? ? ? ? ?当前单词(插入当前单词) ? ? │
├──────────────────────────────────┤
│$(WindowList) ? ? 显示当前窗口列表并选择特定文件 │
└──────────────────────────────────┘
先秀一下polaris的EditPlus,呵呵:
EditPlus
还算漂亮吧。

1 集成Java编译器

菜单文本:Java 编译器
命令:c:\java\bin\javac.exe
参数:$(FilePath)
初始目录:$(FileDir)
捕获输出:选中

如图:
EditPlus
(polaris定义了一个组名,EditPlus可以集成大量外部工具,且允许对它们进行分组)

感谢dofy提醒:$(FilePath) 两边最好加上双引号, 否则如果路径有空格就执行不了了

2 集成Java运行工具

要运行已编译的 Java 类文件,你可以进行如下设置:
菜单文本:Java
命令:c:\java\bin\java.exe
参数:$(FileNameNoExt)
初始目录:$(FileDir)
捕获输出:选中

如图:
EditPlus
注意“参数”与配Java编译器的不同。

注意:“命令”部分应当替换为您实际的 Java 解释器的路径。如果您配置了JAVA_HOME与PATH变量,直接输入javac或java就可以了,不需要完整路径。

EditPlus有一个地方做的比较好,就是在编译或运行后出现了错误,在输出窗口中,双击错误会定位到源代码处。不过有时候定位不了,比如JAVA API的类等。但相比其他同类软件,EditPlus还是做的挺好的。

另外,上面方法实际上只能编译运行没有包名的类。我尝试过很多方法,想让其能够编译运行带包的类,如:编译时加入”-d”参数,然而运行时候会很麻烦,我通过写一个BAT脚本来进行,这当然很不好,所以在此就不详细介绍。大家有兴趣可以自己研究有没有其他方法,有什么好的方法留言分享一下。

3 集成Ant工具,打造真正的JAVA环境

由于编译与运行经常使用,因而将这两项功能单独集成,集成方式跟集成Java工具一样。如图:
EditPlus
运行:
EditPlus
既然使用了ant,当然会有其他众多task,比如打jar包、war包、生成javadoc等。这个时候可以进行如下配置:
菜文本:ant其他目标
命令:D:\Program Files\apache-ant-1.8.1\bin\ant.bat -f
参数:$(FilePath) $(Prompt)
初始目录:$(FileDir)
捕获输出:选中

如图:
EditPlus
当写好build.xml文件后,在打开的情况下(且是当前活动的文档)执行“工具”——“ant其他目标”(您可以自定义快捷方式,默认也会提供快捷方式),这时会出现如下对话框:
EditPlus
在输入框中输入想要执行的目标task,即可达到相应的目的。这样,就可以通过EditPlus达到构建工程的目的。

4 集成Tomcat服务器

集成Tomcat服务器很简单,其实只是调用一个外部工具而已。如图:
EditPlus
注意选中“隐藏运行”,要不然EditPlus输出窗口会一直等待Tomcat停止运行,“工具”菜单栏中的其他自定义工具也无法使用了。

5 getter和setter方法生成器“插件”

“插件”之所以打上引号,之前说过,EditPlus没有真正意义上的插件,这里只是通过其提供的调用外部工具来实现的。

这个功能不是polaris自己实现的,网上有人实现了。在这里引用一下,在原文基础上有修改:(由于该文很多地方引用了,不知道原地址与原作者,有如侵权,请告知;同时,由于原文代码有点长,两个代码文件提供下载,在文中不贴出来了。)

一直很不习惯用Eclipse,觉得那家伙功能太花哨又笨重。还是喜欢用EditPlus手写,几乎平时的开发都用EditPlus,但有时又需要借助Eclipse生成JavaBean的get、set方法。那现在自己写一个JavaBean代码生成器插件,在EditPlus里调用。

首先是编写 BeanGenerator.java类

然后是 BeanInfo.java类

完成之后,编译打成可运行的jar包(不会打包的可以上网搜索或留言),推荐将该JAR包放入EditPlus根目录的plugins目录中(没有plugins目录,可以自己创建)。

接下来需要配置CLASSPATH环境变量,如图:
EditPlus
注意,在配置该变量时,记得在最前面加上“.;”,否则命令行方式运行java命令会抛异常:找不到类。具体原因可以参考《Java环境变量配置问题》

下面便是将其集成到EditPlus中来:

配置完之后,在“工具”菜单中就出现了相应的子菜单(BeanGenerator):
EditPlus
这时,可以写一个简单的JavaBean测试一下:
EditPlus
执行BeanGenerator,或按快捷键,生成的getter、setter方法如图:
EditPlus
(注:上面两个类你可以自行修改,以符合你的习惯,如大括号的缩进方式等,polaris的跟原作者的就略有不同。)

至此,插件的编写与配置全部完成。

有一点提醒一下,上面两个类的编码方式是GB2312,所以,您要生成Bean的文件也应该为GB2312编码。当然你可以换用其他编码,不过两者要一样,否则生成的注释会乱码。

6 总结

就我个人而言,觉得EditPlus在很多方面都很优秀。通过上面的配置,EditPlus已经变成一个类IDE了。就编程而言,EditPlus提供了众多且很优秀的语法高亮的功能(在官网上几乎可以下载到所有你想要的语法高亮文件,或者你可以自己定义,见《第二篇 简洁但功能强大的EditPlus——我的最爱》之 第四部分——自定义语法文件),在这方面,我觉得远远超过UltraEdit,UltraEdit支持的语法高亮不是很好,比如XML(Ant的);然而,有几个方面,我认为EditPlus不是太好:

(1)不支持代码提示功能,代码自动完成功能也很弱;
(2)没法很好的对文本文件(Text)进行语法高亮。我曾试过自己定义Text的语法高亮文件,但效果很不理想。这让我不是很爽,而Vim有一个插件使其有该功能;
(3)不能在程序中跳转。大部分的文本编辑器都没有提供该功能,有些文本编辑器提供了,后面会有介绍。

由于存在这些问题,有必要寻找一款在这些方面做得更好的编辑器来补充EditPlus。在写此文时,我已经找到了一款能够大概满足我要求的,当然不是指Vim,Vim几乎可以满足以上一切要求,然而学习起来不容易,需要长期实践才能够很好的掌握,或者您不想花很多时间学习。那么这款软件到底是啥?之后的文章会详细介绍。

附:JavaBean代码文件及polaris编译打包好了的jar,请点击此处下载(在文章最后)

第二篇 简洁但功能强大的EditPlus——我的最爱

这是 打造全能的文本编辑器序列 的第二篇。在写这篇文章之前,polaris想说明几点:

1)文本编辑器数量众多,而人的精力有限,polaris不可能把所有的文本编辑器都“研究”一遍。所以,如果您很喜欢的文本编辑器,polaris没有涉及,可以留言告之,polaris会尝试使用;
2)萝卜青菜,各有所爱。polaris写作本序列文章的目的不是强制您使用哪个编辑器(呵呵,polaris也不可能有那个能耐),也不是贬低某个编辑器, 而是希望这一序列文章能够给那些还在使用Notepad但想换一个文本编辑器的网友提供一些参考意见,同时也希望给那些还在寻找一款合适编辑器的网友提供 一些参考,另一方面就是,polaris觉得这些文本编辑器确实挺好用,至少polaris用起来很顺手。
3)如果polaris有说的不对或不好的地方,还请您指正。如果您不同意polaris的观点,可以留言给出自己的观点,但请您“嘴上”留情,你不同意polaris的观点,您的观点也不一定就正确,咱们应该讨论,共同进步。“口水战”的确很没意思。
4)希望这一序列文章能够起到抛砖引玉的作用。您有更好的见解或觉得有更好用的编辑器,欢迎分享。

原本上面这些说明应该在文本编辑器序言中,然而这些是polaris应xbeta(善用佳软)邀请将这一序列文章投稿到 http://xbeta.info 上后,看到有些网友的回复,才觉得有必要说明一下。当然,polaris说了这些还是会有人来“口水战”,对此,polaris只能视而不见。

引言

EditPlus在 polaris的印象中,对文本编辑器的使用,大概追溯到当时看视频学JAVA的时候,不过当时对文本编辑器没什么印象。现在对当时使用的情况都很模糊 了,只记得当时使用的应该是UltraEdit,但对其却知之甚少。真正使用文本编辑器应该是在几年前接触到EditPlus,然后在polaris使用 的任何电脑上,都会安装上它,成了装机必备软件之一。

一开始喜欢上它,一来是因为其界面简洁,但功能却十分强大;二来是其启动速度十分快。 在polaris认识的人中,有不少人使用UltraEdit,说实话,这款软件的确做得很优秀,然而,一开始polaris就觉得其界面太过复杂,感觉 很多功能根本用不上,看着不爽,因而也就没有用下去。最近又将其装上了,感觉还是挺好用的,当然功能也很强大(装上也主要是想多试用各种编辑器,了解各大 编辑器的功能,选择一款最适合自己的或给新手一点帮助),在后续文章中,polaris可能会介绍UltraEdit。现在还是回到今天的主角上来—— EditPlus。

介绍之前,引用momo对EditPlus的评价[via]:

经过多种文本编辑软件的比较使用,我发现 Windows 下最好的文本编辑器是 EditPlus。
当然,我知道因个人习惯不同,各类用户可能会对文本编辑器提供的各种功能有不同程度的依赖,但我还是得推荐 EditPlus,因为它有以下几项突出的优点:

1)启动速度快。这几乎是最令人欣赏的一项特性 ,我知道 UltraEdit 是一个功能极其丰富而且强大的编辑器,但它的启动速度太慢了,我没理由为打开一个寥寥数行的文本文件等上好几秒。

2)界面简洁。这也是非常令人欣赏的特性,也许某些比较 Geek 的用户会对庞杂而丰满的程序主菜单仰慕不已,但我并不愿意为了一些并不常用的功能牺牲眼前电脑屏幕上更多的空间,正相反,我喜欢“Keep it simple, stupid”的界面设计,能用,够用就好。

3)完善的代码高亮。最近一直使用的是 EmEditor 6.0,但在编写 Perl 脚本时,我发现 EmEditor 的语法高亮有一定问题,它甚至不能正确识别 =comment … =cut 这样的 Perl 注释语句(polaris注:该问题EmEditor其实很容易解决,只需要自行配置语法注释即可)。而在 EditPlus 下,这种注释被支持得非常好。还有就是在EmEditor下,经常出现多个双引号高亮错误的情况,还以为自己写错代码了(polaris注:在EmEditor10.0 版本中没有发现该问题)……

4)代码折叠功能。这个功能在 EditPlus 版之前似乎没有提供,但现在已经有了,而且效果不错,至少比 EmEditor 的强很多(polaris注:现 在的EmEditor版本代码折叠功能也很强大了)。从我迷上玩博客以后,常常为分析 HTML/CSS 模版代码感到疲惫,因为必须把网页元素间的内在结构搞清楚才能有效地控制它们的显示效果。我以前的一篇文章曾经提到 用 Notepad++ 内置的代码折叠功能分析网页源码,不过说实话那个开源软件的确有很多需要改进的地方,尤其是中文支持方面远不如 EditPlus,EmEditor 这类商业软件(polaris注:EditPlus和EmEditor都是东方人编写的,一开始就对东方象形文字支持很好,毕竟开发者的母语就是象形文字,不过Notepad++是中国台湾人编写的,为啥这方面不如商业软件呢?)。

5)多文档编辑界面。这是个比较细节的特性,在 EmEditor 中,如果把最后一篇活动文档关闭,则主程序也会随之关闭,这给我带来了一些不便。尤其是当我希望创建新的空白文档时,我不得不在开始菜单中重新启动编辑器(polaris注:现行的EmEditor版本已无此问题)。而在 EditPlus 中,只要不点击最右上角的关闭按钮,编辑器始终是打开状态,我个人认为这样更方便一些。除此之外,在界面外观设计上 EditPlus 也有很多过人之处,我不能很好地将这种独特的属性描述出来,但我可以做一个比喻,如果把各种文本编辑器都看作一个美女的话,EditPlus 就属于那种苗条纤巧,落落大方的类型,相比之下 EmEditor 则略显富态(polaris注:EmEditor在这方面的确比不上EditPlus,启动速度也略差些),而 UltraEdit 简直就是肥婆了。

1 EditPlus简介

EditPlus是由韩国人编写的一款共享软件(1-user license: US$35),官方网址是 www.editplus.com 。最新版本是EditPlus 3.2(2010-08-04)。EditPlus是功能全面的文本、HTML、程序源代码编辑器。

主要特点如下:
(1)默认支持HTML、CSS、PHP、ASP、Perl、C/C++、Java、JavaScript和VBScript等语法高亮显示,通过定制语法文件,可以扩展到其他程序语言,在官方网站上可以下载(大部分语言都支持)。
(2)EditPlus提供了与Internet的无缝连接,可以在EditPlus的工作区域中打开Intelnet浏览窗口。
(3)提供了多工作窗口。不用切换到桌面,便可在工作区域中打开多个文档。
(4)正确地配置Java的编译器“Javac”以及解释器“Java”后,使用EditPlus的菜单可以直接编译执行Java程序。

总之,EditPlus功能强大,界面简洁美观,且启动速度快;中文支持比较好;支持语法高亮;支持代码折叠;支持代码自动完成(但其功能比较弱),不支持 代码提示功能;配置功能强大,且比较容易,扩展也比较强。像PHP、Java程序等的开发环境,只要看一下资料,几分钟就可以搞定配置,很适合初学者学习 使用。有不错的项目工程管理功能。内置浏览器功能,这一点对于网页开发者来说很是方便。本人特别推荐。

2 EditPlus特色功能介绍

EditPlus功能众多,有不少功能很多编辑器都是有的,就不进行介绍,当然也会有一些功能polaris没有用到,自然也就不可能拿出来介绍。(说明:由于polaris使用文本编辑器的数量有限,以下功能也许有些编辑器已有了,如您知晓,可以留言分享)

2.1 使用EditPlus书写电子邮件

发送电子邮件时,可以写在EditPlus中写好。写完之后,执行“文件”→“其他”→“发送邮件…”,会启动当前系统默认的邮件客户端,当前文档会被拷贝入邮件正文,这样只要输入发送人地址就可以将邮件发出去了。

2.2 锁定文件不让其他程序修改

执行“文件”→“其他”→“锁定文件”,该文件便被锁定,其他程序便无法修改它。

2.3 复制为HTML

在“编辑”→“剪贴板”中有若干功能,如图:

其中有一项“复制为HTML”,polaris觉得很有特色,也很有用处。您可以复制试试,看看粘贴后是什么样子。

2.4 HTML预览

这个功能不少文本编辑器都有,或者通过插件可以实现,然而polaris觉得EditPlus的HTML预览功能用起来最舒服、方便,也许这跟EditPlus界面简洁有关。

对HTML文件直接按Ctrl+B或点击HTML工具栏的HTML预览图标就会自动在一个文档中启动浏览,这对于测试HTML文件或JavaScript有一定的好处(当然,更专业的测试或调试有专门的工具)。

2.5 有特色的窗口设置

在“窗口”→“其他”菜单中,有若干有特色的设置:

通过这里,可以将EditPlus前端显示或透明显示等。如果您闲任务栏图标太多,您可以选中“最小化为托盘图标”,这样最小EditPlus的时候,EditPlus的图标便不会在任务栏中显示,而是最小化为托盘图标了。

3 EditPlus使用技巧

在此推荐一篇文章《EditPlus 使用技巧集萃》,这篇文章在网上被多次署名或不署名转载。目前可知的最早出处是 dream4ever,但原始网址不可访问,Liangjh是主要编者。[via]。这里面的技巧,在现在的EditPlus版本中已经很容易实现,可能算不上什么技巧了,比如删除空行,现在的版本已经直接提供了该命令。然而,有不少技巧还是值得一看,polaris也对其进行了转载,格式或某些内容进行了改动,点击此处查看

4 自定义语法文件

很多时候,使用EditPlus并不需要自定义语法文件,因为官方网站上已经有大量语法文件可供下载。在此介绍自定义语法高亮文件,主要是为了方便修改已有语法文件,使其更适合自己。

4.1 语法高亮

EditPlus 支持强大的、可自定义的语法高亮功能,内置了 HTML, CSS, PHP, ASP, Perl, C/C++, Java, JavaScript, VBScript 的语法文件,你也可以创建自己的语法文件来支持其它设计语言。

要支持自己的语法类型,你必须创建一个语法文件并把它添加到“参数选择”对话框中的“设置与语法”中。

语法文件是一个扩展名为“.stx”并按预定格式编写的纯文本文件,这种格式非常简单。建议查看用于 C/C++ 的语法文件(cpp.stx),以它为例来学习创建这种语法文件。

#TITLE=C/C++
#DELIMITER=,()}[]-+*%/=”‘~!&|\<>?:;.
#QUOTATION1=’
#QUOTATION2=”
#CONTINUE_QUOTE=n
#LINECOMMENT=//
#LINECOMMENT2=
#COMMENTON=/*
#COMMENTOFF=*/
#COMMENTON2=
#COMMENTOFF2=
#ESCAPE=\
#CASE=y
#PREFIX1=
#PREFIX2=
#PREFIX3=
#PREFIX4=
#PREFIX5=
#SUFFIX1=
#SUFFIX2=
#SUFFIX3=
#SUFFIX4=
#SUFFIX5=
#HTML_EMBEDDED=
#SCRIPT_BEGIN=
#SCRIPT_END=
#HEREDOC=
#AUTOCASE=
#NUMBER_PATTERN=cpp
#SPECIAL_STX=cpp
所有语法声明必须以“#”为前缀,具体解释如下:
#TITLE
这里定义语法文件标题,它必须出现在语法文件的首行,否则 EditPlus 将不能正确读取它的信息。
#DELIMITER
指定用于分解关键字的定界符。你不必指定空格和制表符,它们是程序内置的缺省定界符。
#QUOTATION1
指定引用语标记,例如单引号,这里只能定义一个字符。
#QUOTATION2
指定另一种引用语标记,例如双引号,这里只能定义一个字符。
#CONTINUE_QUOTE
这个选项允许不停止引用而将它延续到下一行。定义为“y”时允许跨行引用,定义为“n”时不允许跨行引用,“n”是默认值。
#LINECOMMENT
指定行内注释标记。如果你以“!”作为行内注释符的前缀,那么仅在它位于行首时才会起作用。
#LINECOMMENT2
指定另一种行内注释标记。如果你以“!”作为行内注释符的前缀,那么仅在它位于行首时才会起作用。
#COMMENTON
指定一个块级注释的启始标记。
#COMMENTOFF
指定一个块级注释的结束标记。
#COMMENTON2
指定另一种块级注释的启始标记。
#COMMENTOFF2
指定另一种块级注释的结束标记。
#ESCAPE
指定避让字符,这里只能定义一个字符。
#CASE
指定敏感性。取值为“n”或“n” 默认值为“n”。
#PREFIX1 – #PREFIX5
指定前缀关键字,任何跟随前缀的单词将被视为已经处理的关键字。
#SUFFIX1 – #SUFFIX5
指定后缀关键字,任何在后缀之前的单词将被视为已经处理的关键字。
#HTML_EMBEDDED
如果是像 PHP 这样的 HTML 植入脚本,指定为“y”。可以参考“php.stx”中的用法。
#SCRIPT_BEGIN
指定 HTML 植入脚本的启始标记,仅在“#HTML_EMBEDDED”定义为“y”时发生作用,请参考“php.stx”中的用法。
#SCRIPT_END
指定 HTML 植入脚本的结束标记,仅在“#HTML_EMBEDDED”定义为“y”时发生作用,请参考“php.stx”中的用法。
#HEREDOC
指定一个字符串用于 Perl和 PHP 文件中的 heredoc。例如:#HEREDOC=<<EOF.
#AUTOCASE
如果希望使用关键字自动完成特性,将它定义为“y”。
#NUMBER_PATTERN
‘cpp’用于 C/C++数字语法高亮。
#SPECIAL_STX
“html”用于 HTML 语法文件,“cpp”用于 C/C++ 语法文件,“perl”用于 Perl 语法文件,留空则可用于其它语法文件。
同其它语言一样,你也可以在语法文件中插入注释,注释行必须以英文的分号“;”启始。如果你希望指定英文分号作为一个关键字,必须以避让字符“^”作为它的前缀。
关键字组 Keyword groups#KEYWORD=Reserved words
abstract
boolean
break
#KEYWORD=Compiler directives

每个关键字组以#KEYWORD=启始,之后定义该组的描述。关键字清单从下一行开始,如果需要在关键字里包含“#”,必须以避让字符“^”为前缀,像 “^#”这样。在这种情况下,“#”标记不应该包含在“#DELIMITER”定义中。你最多可以定义 10 个关键字组。

4.2 用户文件保存机制

在 EditPlus 官网上用户文件页面上有一个用户文件(stx、ctl、acp 文件)集合。若您愿意与其他用户分享您的文件,您可以提交您自己的语法文件到<submit@editplus.com> 。(正文完)

“我的最爱”–补充说明:更新本文的时候,原本打算把标题中的“我的最爱”去掉,因为这个时候,polaris最爱的已经不是EditPlus,而是转为EmEditor,最后想想还是保留原样,毕竟现在polaris是EmEditor为主,EditPlus与Vim为辅,而且EditPlus是曾经的最爱。(2010-09-13)