Java编译器(javac)默认会将编译过程中的**所有输出(包括错误、警告、常规信息)**打印到终端。若需查看某次编译的日志,只需重新运行javac命令,观察终端显示的内容即可。例如:
javac MyClass.java
终端会实时输出编译结果,若有错误,会明确提示错误位置(如文件名、行号)和原因。
若需保存编译日志供后续分析,可通过重定向操作符将输出写入文件:
>将标准输出和标准错误合并到文件。javac MyClass.java > compilation.log 2>&1
此命令会将javac的所有输出(包括错误信息)保存到compilation.log文件中。2>单独捕获标准错误(编译错误通常属于标准错误流)。javac MyClass.java 2> error.log
错误信息会单独保存到error.log文件中,便于快速定位问题。若需边编译边保存日志(方便实时监控且保留记录),可使用tee命令结合重定向:
javac MyClass.java 2>&1 | tee compilation.log
此命令会将javac的输出同时显示在终端,并保存到compilation.log文件中,适合需要实时跟踪编译过程的场景。
若需获取更详细的编译日志(如类加载、字节码生成等信息),可使用javac的-verbose参数:
javac -verbose MyClass.java > verbose.log 2>&1
-verbose会输出每个编译步骤的详细信息,帮助深入分析编译过程中的性能瓶颈或隐藏问题。
target/surefire-reports目录下的测试日志、Gradle的build/reports目录下的编译报告)。可通过工具的命令查看详细日志,例如:
mvn clean install -X(-X参数开启调试模式)gradle build --info(--info参数增加日志详细度)pom.xml、build.gradle)中的日志设置。