16

我正在尝试将 Netbeans 探查器附加到我的 Java 项目,但它卡在了Connecting to the target vm.

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

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

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

我觉得这是 Java 7 的问题。因为如果我仔细查看profiler\lib\deployed没有 jdk17 文件夹。只有 jdk16 和 jdk15。

有什么想法吗?

4

3 回答 3

13

如果我动态附加它,我发现探查器可以工作。因此,您必须先启动应用程序(带有断点)。然后单击 Profile > Attach Profiler... 在顶部选择您的项目并附加本地动态分析器。如果您已经创建了错误的,您可以在 Attach Profiler 对话框的底部进行更改。现在选择正在运行的进程,就是这样。

于 2012-06-21T10:50:41.873 回答
1

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

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

它在多模块项目中不起作用的原因是单击Profile Test File时, 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= 参数在多模块项目中为空。

于 2015-09-18T03:57:55.860 回答
0

我有同样的问题。我认为问题在于 Java JDK 与 Netbeans 版本不兼容,即使 Java 应用程序运行良好。我安装了Netbeans 8.2JDK 1.8。为我工作

于 2020-01-22T08:38:07.810 回答