OpenJDK JDK11 没有 JMC- Java Mission Controller- FlightRecorder。

21

我希望JMC能够在OpenJDK、JDK11二进制文件中提供,因为这已经由Oracle在Java 11中开源,但是在Oracle和AdoptOpenJDK Java-11二进制文件的bin文件夹下找不到它。 我还尝试过这个https://jdk.java.net/jmc/,因为有些文章说它被单独发布了。 是否有人知道如何获取适用于OpenJDK-11的JMC。


4
如果您接受了其中一个答案,下一个问题将会更快得到更好的回答。 - Christine
1
几周前,您在问题中提供的链接上提供了早期访问版本。由于未知原因,二进制版本已被删除。希望它们能尽快恢复... - Robert
JMC 8 的二进制构建版本已经发布,请访问以下链接查看:https://jdk.java.net/jmc/8/ - sudeep
6个回答

19

由于多个供应商已经发布并提供了一段时间的构建版本,我编辑了此答案。 可以在JMC GitHub存储库的自述文件中找到列表:

https://github.com/openjdk/jmc

如果您喜欢该项目,请别忘了给它点赞! :)

以下是原始回答:

通常情况下,可在此处获取版本: https://jdk.java.net/jmc/

有关新交付格式的更多信息,请参见http://hirt.se/blog/?p=1007

构建版本已被(暂时)撤回,因为从旧javax.mail坐标切换到jakarta-ee的新坐标还没有得到适当的第三方批准。接下来的几周内,将会发布一个新的版本,其中包含大量修复,并且所有批准都已妥善安排(或者回退更改)。

在那之前,可以通过从这里拉取官方JMC repo来构建JMC 7(这也不难): https://hg.openjdk.java.net/jmc/jmc7/

您还可以构建并从非官方GitHub存储库中拉取主线镜像:https://github.com/JDKMissionControl/jmc

有关构建JMC的更多信息,请参见: http://hirt.se/blog/?p=947(或者只需阅读存储库根目录中的README.md文件)

祝好运!


感谢@Hirt提供宝贵的链接。很抱歉我迟迟没有查看回复。实际上,我对JFR(Java Flight-Recorder)特别感兴趣。在查看Oracle文章时,我注意到它也随着open jdk二进制文件一起发布:https://blogs.oracle.com/java-platform-group/java-mission-control-now-serving-openjdk-binaries-too。在尝试在jdk/bin中找到类似的东西时,我无法从jdk-11二进制文件中找到它(已检查了OracleOpenJDK和AdoptOpenJdk)。请问我们是否可以直接从jdk二进制文件中访问Flight-Recorder? - tarunk
1
JDK Flight Recorder和JDK Mission Control是两个不同的东西。JDK Flight Recorder内置于Oracle JDK 8+和OpenJDK 11+中。JDK Mission Control是用于可视化记录的工具。如果您阅读了我的博客(http://hirt.se/blog/?p=1007),特别是我和Aurelio撰写的链接博客,我认为新的交付格式为什么会变得清晰明了。 - Hirt
3
自那时以来已经过去了几个月,仍然没有有关建筑进展的消息。 - KARASZI István
@KARASZIIstván,好消息!http://hirt.se/blog/?p=1312(发布于2021年3月17日) - sudeep

11

谢谢Christine,但找不到相同的二进制文件。 - tarunk
你在问题中提供了链接。Nullpointer在一个链接中给出了jmc 6的链接。 - Christine

5

这个软件个人使用免费吗? - Sajuuk
这是他们的常见问题解答:“Azul是否提供Zulu Mission Control社区(即免费)版本?是的。可以在https://www.azul.com/products/zulu-mission-control/下载免费、不受支持的Zulu Mission Control版本。该版本适用于运行Windows、Linux和macOS的客户端。”https://www.azul.com/products/zulu-mission-control/zulu-mission-control-faq/ - Kire Haglin

0

我很想知道你在Oracle网站上找到了实际的下载链接。 - robross0606
@robross0606 我不确定我是否记得那个。但通常来说,谷歌搜索是我探索的媒介。 - Naman

0
BellSoft提供Liberica Mission Control: https://bell-sw.com/pages/lmc/ 根据他们的文档,它在生产环境中免费使用,并且商业支持包含在Liberica JDK的支持订阅中。

0

更新

在从源代码编译时,JMC 8 可用。以下是一个单一的命令,供 Linux 用户构建自己的 JMC 副本。

mkdir ~/jmcToDelete && \
cd ~/jmcToDelete && \
git clone https://github.com/openjdk/jmc.git && \
cd jmc/releng/third-party && \
mvn p2:site && \
runJetty="mvn jetty:run" && \
bash -c "$runJetty &" && \
cd ~/jmcToDelete/jmc/core && \
mvn clean install && \
cd ~/jmcToDelete/jmc && \
mvn package -Dmaven.test.skip=true && \
kill $(jps | grep Launcher | awk '{print $1}') && \
sudo mkdir -p /opt/java/jmc && \
sudo tar xzf  $(find ~/jmcToDelete/jmc/target -name '*.jmc-linux*') -C /opt/java/jmc  && \
sudo ln -s  /opt/java/jmc/jmc   /usr/local/bin/jmc  && \
rm -rf ~/jmcToDelete

在终端中输入 jmc 应该会启动它。

已过时

如 Hirt 所述,您可以从 http://hg.openjdk.java.net/jmc 编译它。 jdk8 中可用的 jmc(v5.5)需要 JVM 进程中存在特殊标志 -XX:+UnlockCommercialFeatures -XX:+FlightRecorder,如果没有这些标志,它将无法检索“飞行记录”,因此您只能使用它与 java1.8。如果您想在 openjdk-11 上添加这些标志,它将失败并显示 Unrecognized VM option 'UnlockCommercialFeatures',这意味着您不需要它们,因为它们默认启用(FlightRecorder)。

我通过从 http://hg.openjdk.java.net/jmc/jmc/ 下载 gz 存档而无问题地编译了 jmc-7.1.0 按照 README 文件中的步骤进行操作: 确保使用 jdk1.8 进行编译 在一个终端中:

cd releng/third-party
mvn p2:site
mvn jetty:run

然后在第二个终端中:

cd core
mvn clean install
cd ..
mvn package

完成后,您应该将所有工件放在目标文件夹中。 默认的jmc启动脚本有很多标志,并且不会使用所有标志启动,因此您可以使用以下方式启动预期的jar。
java -jar ./jmc-[...]/target/products/jmc/plugins/org.eclipse.equinox.launcher_[...].jar

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