首页 > 解决方案 > 在使用 JRE 8 java 运行的 java 进程上使用 JDK 7 中的工具

问题描述

需要在 Window 服务器上生成正在运行的 Java 进程的线程和堆转储。我们在服务器上有 JDK 7,但 Java 进程使用 JRE 8 中的 java 运行。在服务器上安装 JDK 8 需要时间,因为它需要大量的文书工作(公司进程)。将要执行此操作的团队坚持认为,他们需要 Azul 的 JDK 8 来生成转储,因为当前的 Java 进程使用 Zulu JRE 8。由于只有他们知道的原因,他们甚至不想尝试使用 JDK 7 提供的工具( OpenJDK?)安装在服务器上。这些版本真的重要吗?

问题:我可以使用任何版本的 JDK 工具(特别是 JDK 7)生成从 Zulu JRE 8 环境运行的 Java 进程的堆和线程转储吗?

标签: heap-dumpazul-zulu

解决方案


答案似乎是肯定的。

我刚刚在我的 Mac 上尝试过,可以在 Zulu 8 的运行实例上使用 Zulu 7 版本的 jstack 和 jmap 生成线程转储和堆转储。这表明 jstack/jmap 不受 JVM 版本号的困扰(而且似乎也兼容)。

当然,从许可的角度来看,在其他版本的 Zulu(如 8)上使用 Zulu 7 构建的工具没有问题。


推荐阅读