您的位置:首页 > 编程语言 > Java开发

统计java代码行数

2014-04-01 20:12 495 查看
定义一个文件过滤器:仅选择java源文件,代码如下:

import java.io.File;
import java.io.FilenameFilter;

/**
* FileName仅过滤出java源文件
* @author hasonger
*
*/
public class FileName implements FilenameFilter {

@Override
public boolean accept(File dir, String name) {
File file = new File(dir, name);
if(file.getName().toLowerCase().endsWith(".java")) {
return true;
}
if(file.isDirectory()) {
return true;
}
return false;
}

}


再定义一个代码统计工具类:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class CodeStatistics {

//总的有效代码行数
private static int codeLineCount = 0;
//java源文件数
private static int fileCount = 0;

public static void main(String[] args) {
statistics(new File(args[0]));

String msg = "文件数量:" + fileCount + "\n代码行数:" + codeLineCount +
"\n-------------------------------------\n作者:哈松儿";
javax.swing.JOptionPane.showMessageDialog(null, msg);
}

/**
* 统计java源文件数和有效代码行数
* @param file
*/
public static void statistics(File file) {
if(file.isFile()) {
codeLineCount += count(file);
fileCount++;
} else {
File[] filenames = file.listFiles(new FileName());
if(filenames != null) {
for (File f : filenames) {
statistics(f);
}
}
}
}

/*
* 统计file文件的有效代码行数:剔除空行和注释
*/
private static int count(File file) {
BufferedReader br = null;
//有效代码计数器
int count = 0;
try {
try {
br = new BufferedReader(new FileReader(file));
String line = "";
while((line = br.readLine()) != null) {
//按照编码规范剔除空行和注释行
if (!line.trim().equals("")) {
if(!line.trim().startsWith("/**") && !line.trim().startsWith("*") && !line.trim().startsWith("*/") &&  !line.trim().startsWith("//")) {
count++;
}
}
}

} finally {
if(br != null)
br.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return count;

}

}


将上述类的.class文件路径设置到系统变量classpath中,然后修改windows注册表,具体注册表信息:

第二行的“哈送儿代码统计” 是要添加的右键命令名。

第三行代码是jdk的javaw.exe可执行文件的路径和上述main主类名。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\哈松儿代码统计]

[HKEY_CLASSES_ROOT\Folder\shell\哈松儿代码统计\command]
@="C:\\jdk1.7.0_25\\bin\\javaw.exe CodeStatistics \"%1\""


方便的代码统计命令就这样添加成功了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息