我希望 JMC 可以与 OpenJDK、JDK11 二进制文件一起使用,因为它是由 oracle 从 Java 11 开源的,但无法在 bin 文件夹下的 Oracle 和 AdoptOpenJDK Java-11 二进制文件中找到它。我也试过这个https://jdk.java.net/jmc/因为一些文章说它是单独发布的。有谁知道如何为 OpenJDK-11 获取 JMC。
6 回答
我正在编辑这个答案,因为现在可以从多个供应商那里获得并且已经可以使用一段时间了。该列表可在 JMC GitHub 存储库的自述文件中找到:
https://github.com/openjdk/jmc
喜欢的话别忘了给项目一个star哦!:)
这是原始答案:
通常,构建将在此处提供: 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)
祝你好运!
从 Java11 开始,JMC 不再是 JDK 的一部分。正如您已经注意到的,这是一个单独的项目。
https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html
Azul 提供免费的、不受支持的 Zulu Mission Control 版本,可从http://azul.com/products/zulu-mission-control下载
构建适用于运行 Windows、Linux 和 Mac OS X 的客户端。
现在也有 Oracle 生成的二进制文件:
更新
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 进程中存在特殊标志,它不会检索“flight记录”,如果它们不存在,那么您只能在 java1.8 中使用它。如果您想在 openjdk-11 上添加这些标志,它将失败,Unrecognized VM option 'UnlockCommercialFeatures'
这意味着您不需要它们,因为它们默认启用( FlightRecorder )。
我通过从http://hg.openjdk.java.net/jmc/jmc/下载 gz 存档来编译 jmc-7.1.0 没有问题 按照自述文件中的步骤进行操作:确保使用 jdk1.8 完成编译在一个终端:
cd releng/third-party
mvn p2:site
mvn jetty:run
在第二个终端:
cd core
mvn clean install
cd ..
mvn package
完成后,您应该将所有工件放在目标文件夹中。默认的 jmc 启动脚本存在很多标志,并且不会从所有标志开始,因此您可以使用
java -jar ./jmc-[...]/target/products/jmc/plugins/org.eclipse.equinox.launcher_[...].jar
我相信他们仍在评估GitHub以迁移到一个独立的存储库,目前的进展仍处于jmc7
.
您目前可以从Oracle 网站下载独立版本以进行任务控制。
BellSoft 提供 Liberica Mission Control:https ://bell-sw.com/pages/lmc/
根据他们的文档,它可以在生产环境中免费使用,并且作为 Liberica JDK 支持订阅的一部分包含商业支持。