我希望JMC能够在OpenJDK、JDK11二进制文件中提供,因为这已经由Oracle在Java 11中开源,但是在Oracle和AdoptOpenJDK Java-11二进制文件的bin文件夹下找不到它。 我还尝试过这个https://jdk.java.net/jmc/,因为有些文章说它被单独发布了。 是否有人知道如何获取适用于OpenJDK-11的JMC。
我希望JMC能够在OpenJDK、JDK11二进制文件中提供,因为这已经由Oracle在Java 11中开源,但是在Oracle和AdoptOpenJDK Java-11二进制文件的bin文件夹下找不到它。 我还尝试过这个https://jdk.java.net/jmc/,因为有些文章说它被单独发布了。 是否有人知道如何获取适用于OpenJDK-11的JMC。
由于多个供应商已经发布并提供了一段时间的构建版本,我编辑了此答案。 可以在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文件)
祝好运!
自Java11起,JMC不再是JDK的一部分。正如您所注意到的那样,它是一个单独的项目。
https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html
我相信他们仍在评估GitHub是否要移动到一个独立的代码库,目前的进展仍在jmc7
之下。
您可以从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 中可用的 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
java -jar ./jmc-[...]/target/products/jmc/plugins/org.eclipse.equinox.launcher_[...].jar