我是一名 C++ 开发人员,在 Java 技术领域工作了大约一年。原谅我的无知,但我试图搜索以下两个问题。在控制台中为 java 应用程序调试的最佳方法是什么(ala gdb in good ol' C++)。
- 看来jdb低于标准。
- Eclipse 是其 IDE 的必经之路。但是 Eclipse 是一个 GUI,我确实在 unix 服务器上的控制台中进行开发。驯服巨大的 jave 开源框架的最佳方法是什么。例如,骆驼,休眠,春天,logback,等等,等等
我在控制台中进行大部分调试。
我发现对于大多数错误,Java 堆栈跟踪足以识别错误并开发修复程序。这当然意味着允许在控制台上看到堆栈跟踪至关重要。对于大多数应用程序,我发现最好允许未经检查的异常传播,直到它们终止线程,并在控制台中显示堆栈跟踪;未经检查的异常通常应指示编程错误或无论如何都应终止线程的不可控条件。
在堆栈跟踪不足的情况下,我发现在调试过程中使用 System.out.println() 实际上比使用交互式调试器更有效。拥有完整的运行日志对我来说比运行调试器更有用,在调试器中我可以轻松地跳过后来证明很重要的问题。
Wat是在eclipse IDE中设置项目的问题,您总是可以获取源代码并设置您的工作区?
使用 sysout 非常适合小型 Java 程序,但是随着代码的增长或大型应用程序(根据我的理解,您计划调试一些大的东西:P),放置所有这些 sysout 并在完成后删除它们真的很头疼调试。我建议您通过选择 IDE 的“在工作区中导入现有项目”选项来设置自己的工作区,虽然这首先会很累,但从长远来看会对您有所帮助。
我会说不需要这样的工具,因为Java支持远程调试。
您需要在启用远程调试的情况下启动(服务器)JVM - 这适用于较新的 JDK:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
之后,您从 IDE 连接到它,并在任何您喜欢的地方设置断点或条件断点。
此外,这是个人喜好,但我想说 IntelliJ IDEA 是 Java IDE 的最佳选择。