【问题标题】:OpenJDK JDK11 not having JMC- Java Mission Controller- FlightRecorderOpenJDK JDK11 没有 JMC-Java Mission Controller-FlightRecorder
【发布时间】:2019-05-21 18:58:57
【问题描述】:

我希望 JMC 可以与 OpenJDK、JDK11 二进制文件一起使用,因为它是由 oracle 从 Java 11 开源的,但无法在 bin 文件夹下的 Oracle 和 AdoptOpenJDK Java-11 二进制文件中找到它。 我也试过这个https://jdk.java.net/jmc/,因为一些文章说它是单独发布的。 有谁知道如何为 OpenJDK-11 获取 JMC。

【问题讨论】:

  • 对于下一个问题,如果您接受所给出的答案之一,您将更快地获得更好的答案。
  • 几周前,您在问题中包含的链接上提供了早期访问版本。由于未知原因,二进制构建已被删除。希望他们很快回来......
  • 二进制版本可用于 JMC 8,请参阅:jdk.java.net/jmc/8

标签: java java-11 jmc


【解决方案1】:

从 Java11 开始,JMC 不再是 JDK 的一部分。正如您已经注意到的,这是一个单独的项目。

https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html

【讨论】:

  • 感谢@Christine,但找不到相同的二进制文件。
  • 您在问题中提供了链接。 Nullpointer 在链接中给出了 jmc 6 的链接。
【解决方案2】:

我相信他们仍在评估 GitHub 以迁移到独立存储库,目前的进展仍处于 jmc7 之下。

您目前可以从Oracle's website for mission-control下载独立版本。

【讨论】:

  • 我很想知道您在 Oracle 网站上的何处找到了实际下载链接。
  • @robross0606 不知道我是否记得。但总的来说,谷歌搜索将是我探索的媒介。
【解决方案3】:

我正在编辑这个答案,因为现在可以从多个供应商那里获得构建版本,并且已经有很长一段时间了。该列表可在 JMC GitHub 存储库的自述文件中找到:

https://github.com/openjdk/jmc

如果你喜欢这个项目,别忘了给项目一个星! :)

这是原始答案:

通常会在此处提供构建版本: https://jdk.java.net/jmc/

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

由于在 jakarta-ee 从旧 javax.mail 坐标切换到新坐标尚未获得适当的第三方批准,因此已(暂时)取消构建。一个新的版本,有大量的修复,所有的批准都到位(或恢复的变化),应该会在接下来的几周内出现。

在此之前,通过从此处提取官方 JMC 存储库,可以(也不难)构建 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 文章时,我注意到它也与开放 jdk 二进制文件一起发布:blogs.oracle.com/java-platform-group/…。试图在 jdk/bin 中找到类似的东西时,我找不到这个来自 jdk-11 二进制文件(检查过 OracleOpenJDK 和 AdoptOpenJdk)。您能否建议我们是否可以直接从 jdk 二进制文件访问 Flight-Recorder?
  • JDK Flight recorder 和 JDK Mission Control 是两个不同的东西。 JDK Flight Recorder 内置于 Oracle JDK 8+ 和 OpenJDK 11+。 JDK Mission Control 是您用来可视化记录的工具。如果您阅读我的博客 (hirt.se/blog/?p=1007),尤其是 Aurelio 和我撰写的链接博客,我想您会很清楚为什么我们有新的交付格式。
  • 从那以后几个月过去了,仍然没有关于构建的消息。
  • @KARASZIIstván,好消息! hirt.se/blog/?p=1312(2021-03-17 发布)
【解决方案4】:

更新

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 (v5.5) 中可用的 jmc 要求特殊标志 -XX:+UnlockCommercialFeatures -XX:+FlightRecorder 存在于 JVM 进程中,如果它们不存在,它将不会检索“飞行记录”,因此您只能在 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

【讨论】:

    【解决方案5】:

    Azul 提供免费的、不受支持的 Zulu Mission Control 版本,可通过 http://azul.com/products/zulu-mission-control 下载

    版本适用于运行 Windows、Linux 和 Mac OS X 的客户端。

    现在也有 Oracle 生成的二进制文件:

    https://jdk.java.net/jmc/

    【讨论】:

    【解决方案6】:

    BellSoft 提供 Liberica Mission Control:https://bell-sw.com/pages/lmc/

    根据他们的文档,它可以在生产环境中免费使用,并且作为 Liberica JDK 支持订阅的一部分包含商业支持。

    【讨论】:

      猜你喜欢
      • 2015-01-25
      • 2015-04-30
      • 2018-11-20
      • 2016-07-28
      • 2022-01-20
      • 2018-03-09
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      相关资源
      最近更新 更多