54powermanhttp://54powerman.blog.sohu.com有时我们会在网上下载或者复制一些java程序,他们的格式混乱,无法阅读,有些IDE软件可以对代码进行格式化,如Jbuilder,但是这些程序启动非常慢,运行起来更慢的不得了,难道为了看一下代码也要启动IDE来处理?有一个小工具--AStyle可以对混乱的代码进行美化。另外,由于不同的IDE对代码处理的格式也不相同,使用该工具同样可以使代码适合你的阅读习惯。顺便说一句,该工具支持C/C++/C#/Java语言,这里只描述java。1 下载AStyleArtistic Style--当前版本是v1.20.2,官方下载地址:http://sourceforge.net/projects/astyle/
2 语法Usage : astyle [options] Source1.cpp Source2.cpp [...] astyle [options] < Original > Beautified本文不是说明书,不详细介绍使用方法,运行astyle -h查看详细的说明。这里只介绍常用的功能。
3 常用功能(1) 单个文件--缺省美化astyle --style=java Test.java处理前的代码:public class Test{ public static void main(String[] args) { System.out.println("Test out.");System.out.println(new java.util.Date()); int a=1; }}处理后:public class Test{ public static void main(String[] args) { System.out.println("Test out."); System.out.println(new java.util.Date()); int a=1; }}
(2) 单个文件--更改缩进2个空格astyle --style=java --indent=spaces=2 Test.java缺省缩进一个TAB,也可以显式说明使用Tab,如下:astyle --style=java --indent=tab Test.java
(3) 处理多个文件--有限个astyle --style=java Test.java T.java
(4) 批量处理多个文件--无限个for /R ./ %f in (*.java) do astyle --style=java "%f"说明:/R表明遍历一个目录树,后面紧跟的路径是根,缺省为当前目录。本例中,根为./表示当前目录,命令等价于:for /R %f in (*.java) do astyle --style=java "%f"作用是从(目录树根)当前目录开始,查找所有java文件,包含子目录中的文件;然后交给astyle处理。当然,目录树根也可以使用绝对路径,下面的命令查找C盘所有的java文件并处理。for /R c:/ %f in (*.java) do astyle --style=java "%f"
4 其他比较有用的开关:(1) -f在两行不相关的代码之间插入空行,如import和public class之间、public class和成员之间等;(2) -p在操作符两边插入空格,如=、+、-等。如:int a=10*60;处理后变成int a = 10 * 60;(3) -P在括号两边插入空格。另,-d只在括号外面插入空格,-D只在里面插入。如:System.out.println(1);处理后变成System.out.println( 1 );(4) -U移除括号两边不必要的空格。如:System.out.println( 1 );处理后变成System.out.println(1);(5) -V将Tab替换为空格。