Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何自动删除项目的所有system.out.println语句,包括所有多行Sop语句_Java_Eclipse - Fatal编程技术网

Java 如何自动删除项目的所有system.out.println语句,包括所有多行Sop语句

Java 如何自动删除项目的所有system.out.println语句,包括所有多行Sop语句,java,eclipse,Java,Eclipse,实际上,我想在将项目交付给客户机之前,自动从整个项目中删除所有System.out.println()语句。怎么做 您可以使用任何像样的文本编辑器(如Notepad++)的替换功能。只需将正则表达式System.out.println(\*)替换为空字符串使用IDE的“全部查找”功能即可 然后手动删除它 在Eclipse中: CTRL+H 然后是“文件搜索” 键入“System.out.println(*);”并单击“替换…”单击CTRL+F并选择替换。然后,将System.out.printl

实际上,我想在将项目交付给客户机之前,自动从整个项目中删除所有
System.out.println()
语句。怎么做

您可以使用任何像样的文本编辑器(如Notepad++)的替换功能。只需将正则表达式
System.out.println(\*)
替换为空字符串

使用IDE的“全部查找”功能即可 然后手动删除它

在Eclipse中:

CTRL+H

然后是“文件搜索”


键入“System.out.println(*);”并单击“替换…”

单击CTRL+F并选择替换。然后,将System.out.println替换为//System.out.println

您可以通过
find in Project
选项执行此操作,然后将
System.out.println(
添加到您的搜索条件中,然后将其全部删除。匹配条件将不会匹配整个单词

如果INtellij Idea,则
Edit->Find->Find in Path


如果NetBeans然后
Edit->Find In Projects

按ctrl+H转到文件搜索。将包含的文本填充为
System.out.println(*);
,文件名模式为
*.
,然后单击替换按钮


在搜索提示输入替换文本后,按确定

如果您想自动化此类内容,可以使用task对源代码文件进行使用和预处理。我们使用它将产品版本编译为二进制文件

这是从在线文档中获取(并稍作修改):

<replaceregexp match="System.out.println(.*);" replace="" flags="g" byline="true">
  <fileset dir="${src.dir}" includes="**/*.java"/>
</replaceregexp>



有一个可以完全满足您需要的功能。这将注释/删除所有
System.out
的链接。也可以检查链接。据说这是post的解决方案。

以及
System.out.println(一些字符串);
?(提示:可能需要一些正则表达式)@amit使用记事本++可以使用正则表达式替换.System.out.println(*);好吧,应该这么说。还有
系统会发生什么。\nout。\nprintln(一些字符串);
(但是编辑过的答案越来越好)Oscar,这是一个有效的正则表达式吗?我不知道它们在Notepad++中的味道,但没有javascript/Java/Perl正则表达式看起来是这样的…@tucuxi不,不是,我只是作为一个示例编写的。那么
System.out.println(一些字符串);
(提示:需要一些正则表达式)如果您编写System.out.println,而不使用括号,这将解决所有问题。(我编辑了我的答案)但是代码将无法编译,您必须手动从任何地方删除
(字符串)
。那么,可能是System.out.println(*),我没有使用正则表达式来查找和替换,但它可能会起作用。将system.out.print替换为//system.out.print(多行可能会有问题),或者将其替换为您正在使用的log4jWhich
IDE
?您真的想删除它们吗?还是只想禁用“调试”输出到stdout?您是想一劳永逸地执行此操作,还是只想在发布前执行此操作?并不是说您要求使用更方便的方法,而是如果您首先使用了日志框架,您可以禁用代码。这只是对即将到来的项目的一个想法。如果您在发布后将进一步开发此应用程序使用
System.out.println()将第一个版本传递给客户机(通常也是如此)
无论如何都不是一个好主意。使用可配置的日志框架,例如logback,可以省去你的工作。C等有一个预处理器,可以完全去除调试代码。你有没有阅读其他答案的评论?如果你有System.out.println(一些东西),会发生什么?@AbimaranKugathasan:是的,我已经编辑了答案,很抱歉。现在,代码不会编译。什么意思,它会找到
System.out.println(
),然后我们必须删除那一行。
Intellij Idea
非常适合这样做。