在日常的Ja va开发中,无论是调试代码还是排查问题,查看编译日志都是一项基本但重要的技能。特别是在CentOS这类服务器环境下,没有图形界面的辅助,纯命令行操作就要求我们熟练掌握几种查看日志的方法。下面整理了几种常见场景下的操作方式,希望能帮助大家更高效地定位问题。
1. 直接看命令行输出
如果直接用ja vac命令编译Ja va源文件,比如ja vac HelloWorld.ja va,那么编译过程中的正常信息(比如编译进度)和错误信息(比如语法错误)都会默认输出到终端。要想把这些信息保存下来,方便后续查看,用重定向操作就行:

ja vac HelloWorld.ja va > compile.log 2>&1
这段命令里,>把标准输出(正常信息)重定向到compile.log文件,2>&1则把标准错误(错误信息)也合并到标准输出里,这样所有信息就都写入同一个日志文件了。
2. 构建工具的调试模式
如果是通过Ma ven或Gradle这类构建工具来编译项目,它们也提供了更详细的日志输出参数:
- Ma ven:加上
-X参数就能启用调试模式,输出完整的编译过程日志:mvn compile -X - Gradle:加上
--info(显示常规详细信息)或--debug(更详细的调试信息)参数:gradle build --info gradle build --debug
这些命令的输出默认显示在终端,同样可以通过重定向保存到文件,比如mvn compile -X > ma ven_compile.log 2>&1。
3. 查看已保存的日志文件
如果编译日志已经保存到文件了,比如compile.log或ma ven_compile.log,可以通过以下命令查看:
- 查看全部内容:
cat compile.log(适合小文件); - 分页查看:
less compile.log(按空格翻页,按q退出); - 查看最新内容:
tail -n 50 compile.log(只看最后50行); - 实时跟踪:
tail -f compile.log(持续显示新增日志,按Ctrl+C停止)。
4. 实时监控编译日志
如果编译过程比较长,或者是在后台运行,需要实时查看最新进展,用tail -f最合适。例如:
tail -f compile.log
当compile.log文件有新内容追加时,终端会立即显示出来,方便及时观察编译进度和错误信息。
注意事项
- 如果编译时没有指定日志文件,日志默认输出到终端,不会自动保存;
- 重定向日志时,
2>&1是关键,它确保错误信息与正常信息一起保存,避免遗漏; - 对于大型项目,建议使用构建工具(如Ma ven/Gradle)的调试模式,这样能获取更详细的编译日志,比如依赖解析、类编译过程等,对排查问题很有帮助。