使用AStyle工具格式化java程序

简介: 54powermanhttp://54powerman.blog.sohu.com有时我们会在网上下载或者复制一些java程序,他们的格式混乱,无法阅读,有些IDE软件可以对代码进行格式化,如Jbuilder,但是这些程序启动非常慢,运行起来更慢的不得了,难道为了看一下代码也要启动IDE来处理?有一个小工具--AStyle可以对混乱的代码进行美化。

54powerman
http://54powerman.blog.sohu.com
有时我们会在网上下载或者复制一些java程序,他们的格式混乱,无法阅读,有些IDE软件可以对代码进行格式化,如Jbuilder,但是这些程序启动非常慢,运行起来更慢的不得了,难道为了看一下代码也要启动IDE来处理?
有一个小工具--AStyle可以对混乱的代码进行美化。另外,由于不同的IDE对代码处理的格式也不相同,使用该工具同样可以使代码适合你的阅读习惯。
顺便说一句,该工具支持C/C++/C#/Java语言,这里只描述java。
1 下载AStyle
Artistic 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替换为空格。 

目录
相关文章
|
4天前
|
监控 Java 开发者
Java面试题:如何使用JVM工具(如jconsole, jstack, jmap)来分析内存使用情况?
Java面试题:如何使用JVM工具(如jconsole, jstack, jmap)来分析内存使用情况?
11 2
|
12天前
|
监控 负载均衡 Java
如何设计高可用性的Java Web应用程序
如何设计高可用性的Java Web应用程序
|
4天前
|
安全 Java 调度
Java面试题:Java内存优化、多线程安全与并发框架实战,如何在Java应用中实现内存优化?在多线程环境下,如何保证数据的线程安全?使用Java并发工具包中的哪些工具可以帮助解决并发问题?
Java面试题:Java内存优化、多线程安全与并发框架实战,如何在Java应用中实现内存优化?在多线程环境下,如何保证数据的线程安全?使用Java并发工具包中的哪些工具可以帮助解决并发问题?
6 0
|
5天前
|
Java 测试技术 Maven
在Java项目中集成单元测试与覆盖率工具
在Java项目中集成单元测试与覆盖率工具
|
6天前
|
Kubernetes Java Apache
Java中的容器编排工具比较与选择
Java中的容器编排工具比较与选择
|
9天前
|
Java 调度 Windows
Java面试之程序、进程、线程、管程和并发、并行的概念
Java面试之程序、进程、线程、管程和并发、并行的概念
9 0
|
9天前
|
IDE Java 持续交付
Java中的代码质量检查与自动化工具
Java中的代码质量检查与自动化工具
|
12天前
|
消息中间件 监控 Java
使用Java进行实时数据处理的工具和技术
使用Java进行实时数据处理的工具和技术
|
12天前
|
算法 Java 数据库连接
Java中优化网络通信的方法和工具
Java中优化网络通信的方法和工具
|
12天前
|
算法 数据可视化 Java
Java中的性能调优技巧与工具推荐
Java中的性能调优技巧与工具推荐