在Ubuntu(OpenJDK 8)上如何找到Java Mission Control和VisualVM?

19
我使用sudo apt-get install openjdk-8-jdk在Ubuntu上安装了OpenJDK 8,它被安装在/usr/lib/jvm/java-8-openjdk-amd64目录下。

我想知道Java Mission Control(我认为称为jmc)和VisualVM(我认为称为jvisualvm)程序的位置在哪里?

我认为它们都应该与JDK一起安装:

  • Java Mission Control页面指出:"从Oracle JDK 7 Update 40(7u40)版本开始,Java Mission Control将与HotSpot JVM一起打包发布。"
  • VisualVM页面说:"2014年3月18日:JDK 8已经发布,并可以在此处下载。它包含基于VisualVM 1.3.6的Java VisualVM工具。"

我错过了什么吗?它们都只是Oracle JDK的一部分,还是我使用了错误的安装命令?

如果它们不是OpenJDK的一部分,我能否使用apt-get install来下载它们?


1
我在使用Oracle JDK时可以在ls /usr/lib/jvm/java-8-oracle/bin中看到它们,如果它们不在/usr/lib/jvm/java-8-openjdk-amd64/bin中,我猜它们不是OpenJDK的一部分。哦,还有jmcjvisualvm - Elliott Frisch
@ElliottFrisch:感谢你提供正确的名称。但我在/usr/lib/jvm/java-8-openjdk-amd64/bin中并没有看到它们。 - Markus Weninger
如果你需要它们,那么你应该获取Oracle JDK。我推荐使用Web Upd8 PPA。 - Elliott Frisch
@ElliottFrisch:“需要”可能是错误的词,我只是想在运行时能够对我的应用程序进行分析,使用一些堆可视化工具,这两个工具似乎都适合这种情况,所以我只是想测试它们并尝试一下。感谢提供链接! - Markus Weninger
你也可以尝试使用JConsole。 - DMH
1
最新版本可在此处下载:https://jdk.java.net/jmc/ - Robert
3个回答

26

现在一些OpenJDK版本的维护者提供了jmc构建版本,例如AdoptOpenJDKAmazon CorrettoAzul Zulu

Java Mission Control(jmc)是开源的,并托管在GitHubopenjdk.java.net(作为一个Mercurial代码库)上。

官方夜间构建版本可以在此处获取。

你也可以按照自述文件中的说明轻松构建jmc。

hg clone http://hg.openjdk.java.net/jmc/jmc/
cd jmc/releng/third-party
mvn p2:site
mvn jetty:run

在另一个终端中:

cd core
mvn clean install
cd ..
mvn package
安装完成后,您可以关闭在第一个终端中运行的Jetty服务器。或者,您可以使用Docker构建jmc:
docker-compose -f docker/docker-compose.yml run jmc

启动JMC:

  • 在Linux上:target/products/org.openjdk.jmc/linux/gtk/x86_64/jmc
  • 在macOS上:target/products/org.openjdk.jmc/macosx/cocoa/x86_64/JDK\ Mission\ Control.app/Contents/MacOS/jmc
  • 在Windows上:target\products\org.openjdk.jmc\win32\win32\x86_64\jmc.exe

现在你应该看到一个启动画面:

Java Mission Control的启动画面


更多信息请参考这篇博客文章


docker-compose -f docker/docker-compose.yml run jmc 对我很有效! - Phoenix404

4

Java Mission Control是Oracle的一个插件。如果您想要进行性能分析,我建议您使用OpenJDK或商业工具YourKit。

如果它们不是OpenJDK的一部分,我可以使用apt-get install下载它们吗?

在同意Oracle的使用许可协议后,您必须从Oracle网站上下载它们。


1
只是想澄清一下,您的意思是下载包含Java Mission Control的完整Oracle JDK吗?我看到了这个链接(https://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mission-control-1998576.html),它会引导您下载完整的JDK,但没有独立的Java Mission Control下载链接。 - Richard Neish

1
使用docker-compose构建的另一种方法是替代Steven提供的构建说明:
$ hg clone http://hg.openjdk.java.net/jmc/jmc/
$ cd jmc/jmc/docker
$ docker-compose up
# Wait for the build to finish, then exit it with Ctrl-C
$ cd ../target
$ ls products/org.openjdk.jmc/
linux macosx win32
# Run the binary from the correct OS
$ ./products/org.openjdk.jmc/linux/gtk/x86_64/jmc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接