我认为这个问题与this强烈相关,但它已经关闭,解决方案对我来说似乎并不清楚。
我正在尝试使用VisualVM来配置我的控制台Scala应用程序。我这样做是通过启动VisualVM,启动我的Scala应用程序,在VisualVM中打开它的节点,转到“Profiler”选项卡并单击“CPU”。按钮变为灰色一段时间(状态永远不会变为“分析非活动”),然后返回活动状态,但不显示分析数据。
应用程序执行一些文件读取,数据处理(大约需要一分钟),stdout数据输出和退出。我还尝试将Thread.sleep(60000)
添加到程序的开头和结尾,以确保有足够的时间让VisualVM捕获它并完成工作,但没有任何改变。
与我链接到的相关问题不同,我没有从Eclipse或其他任何东西启动我的应用程序 - 我使用以下命令行启动它:
java -classpath myapp.jar:lib/* MyApp.Main
所有库(包括scala-library.jar
)都放在lib/
中。该应用程序按预期工作。
更新
AttachNotSupportedException
。所用软件的版本:
答案 0 :(得分:4)
两天前我使用VisualVM来分析Scala应用程序,所以我相信它应该可行。以下是我的建议:
while (true) { Thread.sleep(10000); }
编辑:根据您的输入,我建议明确设置远程JMX连接。您可以使用以下选项启动Java:
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=20000
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
然后在VisualVM中,将{JMX连接添加到localhost:20000
。