java - 在 JAVA 中调试多线程 Web 服务器

标签 java multithreading jvm webserver

我正在开发一个多线程网络服务器小程序,并且在过去一周左右一直在处理 system.out.println 作为我的“调试”工具。据我了解,我构建的 .jar 由构建器分割并放入 .html 文件中,然后在访问 Web 服务器时吐出。

我想知道是否有某种方法可以将调试器(插件?)附加到 Java 虚拟机,这样我就可以在操作网络服务器时逐步执行代码 - 有一些关键的异常,例如追踪起来非常令人沮丧。我相信它们是与多线程相关的计时问题,这使得它们在尝试定位时更加不可靠,并且可能意味着调试器无法正确处理。我认为这并不重要,但我构建的 IDE 是 Netbeans。

我接手了一位前开发人员仓促但尚未完全完成的项目,现在的情况超出了我的能力范围。 =/提前感谢任何可能的解决方案,我很感激。

最佳答案

当然可以。

您需要使用合适的参数启动 Web 服务器 JVM,以便对其进行远程调试。您可以在http://download.oracle.com/javase/1.3/docs/tooldocs/win32/jdb.html查看怎么做。 jdb 与 javac 一起在 JDK 中可用。然后启动 IDE 调试器连接到 JVM 并告诉它类的源代码所在的位置。请记住使用调试信息进行编译。

由于您已将其内置于 Netbeans 中,因此请考虑在 Debug模式下启动它,这样上述所有额外工作都会自动为您完成。

关于java - 在 JAVA 中调试多线程 Web 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6866126/

相关文章:

Java:使用字符串来停止 while 循环,并由以下扫描仪输入消耗

java - Android:接口(interface)与 get 方法

c++ - 并行测试与 geos 的交集时出现段错误

python - time.sleep -- 休眠线程或进程?

java - 获取和释放 java 监视器锁(同步块(synchronized block)、可重入锁等)是否需要上下文切换到内核空间?

java - 获取父布局中所有按钮的 id

android - 背景音乐会是一个单独的后台进程吗?

java - 解析后的引用(即针对符号引用的直接内存地址)存储在 JVM 中的位置?

java - "RegionCacheAdapter Unable to clear cache. Failed on region null. Last key null null"

java - 是否可以在Kotlin中将@JvmOverloads添加到生成的copy(…)方法中?