我有NetBeans 7,并想知道如何计算项目的总行数。我在Google上搜索过,但每次搜索都只能找到死胡同或不起作用的插件。是否有人知道如何计数行?
我有NetBeans 7,并想知道如何计算项目的总行数。我在Google上搜索过,但每次搜索都只能找到死胡同或不起作用的插件。是否有人知道如何计数行?
您可以使用适用于8.2版本的nb-wordcount插件代替适用于7.1版本的wordcount插件。
要配置wordcount,请进入 工具->选项->其它。
如果你想匹配Java和Groovy之外的其他文件,则必须更改接受文件名
。
要显示计数窗口,请进入窗口->打开WordCount窗口。
要显示统计信息,请点击WordCounting(第二个按钮)。它将显示在项目(窗口)中选择的目录的统计信息(它必须是一个包或类似源包或Web页面,如果选择了项目则不起作用)。
此外,如果您在Linux上运行,可以执行以下操作:
find . -name '*.java' | xargs wc -l
我知道这可能是一个非常老的问题,但是有一种更简单的方法可以找到NetBeans项目中行数的数量,而不需要安装插件:
\n
。搜索结果
标签页的顶部。注意:在NetBeans中,搜索结果最多只显示5000条记录,如果你的项目超过了这个限制,则无法使用此方法
public static void main(String[] args) throws FileNotFoundException {
final String folderPath = "D:\\Dev\\MYPROJECT\\src";
long totalLineCount = 0;
final List<File> folderList = new LinkedList<>();
folderList.add(new File(folderPath));
while (!folderList.isEmpty()) {
final File folder = folderList.remove(0);
if (folder.isDirectory() && folder.exists()) {
System.out.println("Scanning " + folder.getName());
final File[] fileList = folder.listFiles();
for (final File file : fileList) {
if (file.isDirectory()) {
folderList.add(file);
} else if (file.getName().endsWith(".java")
|| file.getName().endsWith(".sql")) {
long lineCount = 0;
final Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
scanner.nextLine();
lineCount++;
}
totalLineCount += lineCount;
final String lineCountString;
if (lineCount > 99999) {
lineCountString = "" + lineCount;
} else {
final String temp = (" " + lineCount);
lineCountString = temp.substring(temp.length() - 5);
}
System.out.println(lineCountString + " lines in " + file.getName());
}
}
}
}
System.out.println("Scan Complete: " + totalLineCount + " lines total");
}
结果看起来类似于以下内容:
(truncated)
47 lines in WarningLevel.java
Scanning design
1367 lines in ProcessResultsFrame.java
83 lines in TableSettingPanel.java
Scanning images
Scanning settingspanel
67 lines in AbstractSettingPanel.java
215 lines in AdvancedSettingsPanel.java
84 lines in BaseSettingsPanel.java
451 lines in DatabasePanel.java
488 lines in EmailPanel.java
458 lines in FTPGUIPanel.java
482 lines in FTPScheduledTaskPanel.java
229 lines in GUISettingPanel.java
87 lines in RootSettingJPanel.java
722 lines in ServerVisualIdentificationSettingPanel.java
Scan Complete: 123685 lines total
如果有什么漏掉的,请告诉我,我会尽力纠正。谢谢!
, Charset.forName("Cp1252")
,这反过来又让我使用try-with子句来处理可能引发的IOException。
这样做将我的行数从4222增加到5332,这似乎更合理(我有0行文件)。 - Anab@Johnathan, 我喜欢你的简单而有用的代码行数统计程序。在使用它进行我的项目时,我发现 Scanner 并不总是能正确地计算出行数,有时甚至对于某个特定文件它都无法计算一行。 一番调查后,我找到了这篇文章Java scanner not going through entire file。看起来 Scanner 在处理不同编码时存在一些问题。为了避免这种情况并使程序更加可靠,我建议将 Scanner 替换为 BufferedReader,像这样:
[...]
// final Scanner scanner = new Scanner(file);
// while (scanner.hasNextLine()) {
// scanner.nextLine();
// lineCount++;
// }
InputStream is = new FileInputStream(file);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while (br.readLine() != null) {
lineCount++;
}
[...]