现在解决了-看问题的结束。
我正在尝试用IntelliJ Community的调试器调试Java。套接字正在监听--但是当我试图连接调试过程时,显示了以下‘连接到目标VM,地址:':8003',传输:’套接字‘--它永远不会连接到VM,而且我无法调试。
我已经搬到了Windows 7 64位PC上--在我的旧XP机器上,可以连接和调试这个Java进程(这是我构建和维护的一个应用程序)。
它不会失败的标准“连接拒绝:连接”错误,您将得到如果没有进程连接。Netstat还显示程序运行时端口正在监听。
TCP 0.0.0.0:8003 :0监听
为应用程序-Xrunjdwp:transport=dt_socket、server=y、suspend=n、address=8003 -Xdebug调试args
如果我试图在远程计算机上从IntelliJ运行调试会话,则可以连接到本地计算机上运行的进程,并进行调试。如果我在远程计算机上运行Java应用程序,并在本地计算机上使用IntelliJ,我可以进行调试。只有当我在同一台机器上运行和调试时,它才会失败--不幸的是,我几乎一直都需要这样做。
我发现的唯一类似的问题来自2004年,与带有空格的文件路径有关,是NetBeans,而不是IntelliJ。我已经重建和重新运行我的应用程序,确保没有空间或下划线在道路上,没有joy。
我的intelliJ调试设置是在套接字上调试本地机器,附加模式端口8003 -对不起,作为一个新用户,我不能附加图像。
我尝试过的其他事情:
使用共享内存而不是套接字传输versions
卡住了。任何帮助都很感激。
谢谢史蒂夫
已解决
嗯,一天没能解决的话,我20分钟后就能找到答案了。一个无效的JNI签名字符,只有在调试时才会找到。调试时添加此arg解决问题。
-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6547438
谢谢你的帮助。仍然不知道为什么它会在远程调试时工作,但之前不在本地调试。
发布于 2011-07-12 08:18:37
这听起来像是一个奇怪的防火墙问题。
看来,您应该能够尝试telnet localhost 8003,但它应该失败。这意味着没有任何东西可以连接到该端口上的应用程序。
编辑:如果共享内存也能正常工作,并且不能通过telnet连接,那么运行应用程序的方式就会出现问题。
如果应用程序没有运行,您将得到这种类型的错误。
您能尝试从IntelliJ调试一个简单的程序吗?
https://stackoverflow.com/questions/6661166
复制相似问题