Netbeans Profiler:永久连接到目标虚拟机

2022-09-03 07:15:15

我正在尝试将 Netbeans 分析器附加到我的 Java 项目中,但它遇到了 .Connecting to the target vm

我发现了这个旧的错误报告,但已经修复了。我的版本是7.1.2,Windows 7上的Java 1.7.0_04。

我试图禁用防火墙并以管理员身份启动Netbeans,但仍然遇到了同样的问题。

有点奇怪的是,校准工作正常。

我觉得这是Java 7的问题。因为如果我研究一下,就没有jdk17文件夹。只有 jdk16 和 jdk15。profiler\lib\deployed

有什么想法吗?


答案 1

我发现如果我动态附加探查器,它就可以工作。因此,您必须首先启动应用程序(带有断点)。然后单击配置文件>附加探查器...在顶部选择您的项目并附加本地动态探查器。如果已创建错误的配置文件,则可以在“附加探查器”对话框的底部进行更改。现在选择正在运行的进程,仅此而已。


答案 2

我在使用 NetBeans 8.0.2 在多模块 maven 项目中分析 junit 测试时遇到了同样的问题。

我通过将测试提取到一个独立的maven项目中,并将其他模块添加为依赖项来解决这个问题。

它在多模块项目中不起作用的原因是,单击“配置文件测试文件”时,NetBeans 会生成不正确的命令行。例如,在多模块项目中,它产生:

cd C:\test; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_40" cmd /c "\"\"C:\\Program Files\\NetBeans 8.0.2\\java\\maven\\bin\\mvn.bat\" -Dtest=PerfTest -DforkMode=once -Dmaven.surefire.debug=${exec.args} -Dexec.args= -Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans 8.0.2\\java\\maven-nblib\\netbeans-eventspy.jar\" -Dfile.encoding=UTF-8 surefire:test\""

而它应该是:

cd C:\test; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_40" cmd /c "\"\"C:\\Program Files\\NetBeans 8.0.2\\java\\maven\\bin\\mvn.bat\" -Dtest=PerfTest -DforkMode=once -Dmaven.surefire.debug=${exec.args} -Dexec.args=\"-agentpath:\\\"C:/Program Files/NetBeans 8.0.2/profiler/lib/deployed/jdk16/windows-amd64/profilerinterface.dll\\\"=\\\"C:\\Program Files\\NetBeans 8.0.2\\profiler\\lib\\\",5140,10 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\\Users\\foo\\AppData\\Local\\NetBeans\\Cache\\8.0.2\\mavencachedirs\\2029222463\\org-netbeans-modules-profiler  \" -Dmaven.ext.class.path=\"C:\\Program Files\\NetBeans 8.0.2\\java\\maven-nblib\\netbeans-eventspy.jar\" -Dfile.encoding=UTF-8 surefire:test\""

TL;DR - -Dexec.args= 参数在多模块项目中为空。


推荐