【问题标题】:Looking for Java 7 native agent demos, for use specifically on Mac or Linux [closed]寻找 Java 7 本机代理演示,专门用于 Mac 或 Linux [关闭]
【发布时间】:2026-01-09 23:50:01
【问题描述】:

几年前我曾经使用 Java 原生代理,现在我又回到了这个问题上。我想知道....他们怎么了?

在 jdk1.6/demo/jvmti 目录中有示例,但是在 Java 7 中,似乎没有 demo 目录。他们怎么了?

无论如何,我找到了 1.6 演示(在 windows 上),我正在尝试使用 jdk 1.6 在 linux 和 mac 上编译它们。 mac 没有示例 makefile 示例,因此这是我最需要帮助的示例。有没有办法使用 jdk 1.6 编译本机代理? jdk 1.7 怎么样?

在 linux 上,我以某种方式让代理使用 jdk 1.6 进行编译,但依赖于 java_crw_demo 代码的代理似乎不起作用。我想我可能编译错了。

有问题的演示是:

  • agent_util
  • gctest
  • 堆跟踪器
  • 堆查看器
  • hprof
  • java_crw_demo
  • minst
  • mtrace
  • 版本检查
  • 服务员

无论如何,关于代理的谷歌搜索似乎暗示代理仍在与 jdk 1.7 一起使用,但似乎没有以前的示例支持。 Oracle 是否试图限制(或停止)代理?

谢谢。

【问题讨论】:

  • 欢迎来到 *!您能否更清楚地了解您要解决的具体问题是什么?
  • 嗨。我正在尝试从我拥有的 1.6 演示中编译 src,但是虽然成功,但我不确定它们为什么在运行时失败。我很久以前编译的演示(可能已经编译)似乎可以在 Windows 上运行。我真正想要的是在 linux 和 mac 上成功编译演示。

标签: java native agents


【解决方案1】:

JVMTI 演示可能会或可能不会与您的 JDK 安装捆绑在一起,这取决于您从哪里获得它。它们在 OpenJDK 安装中不存在(afaict)。但无论如何,在Oracle Download Page 的所有情况下都可以使用演示。下载tarball for Mac,展开到一个目录,然后浏览。

在相关文件夹jdk1.7.0_10/demo/jvmti 中,您将找到以下演示:

drwxr-xr-x@ 5 tuoyo 员工 170 Nov 29 19:30 编译MethodLoad
drwxr-xr-x@ 5 tuoyo 员工 170 Nov 29 19:30 gctest
drwxr-xr-x@ 6 tuoyo 员工 204 Nov 29 19:30 heapTracker
drwxr-xr-x@ 5 tuoyo 员工 170 Nov 29 19:30 heapViewer
drwxr-xr-x@ 5 tuoyo 员工 170 Nov 29 19:30 hprof
drwxr-xr-x@ 6 tuoyo 员工 204 Nov 29 19:30 minst
drwxr-xr-x@ 6 tuoyo 员工 204 Nov 29 19:30 mtrace
drwxr-xr-x@ 5 tuoyo 员工 170 Nov 29 19:30 versionCheck
drwxr-xr-x@ 5 tuoyo 员工 170 Nov 29 19:30 服务员

每个单独的演示都有一个包含代码的源 ZIP 文件和一个示例 makefile。您很可能需要调整 makefile 以使构建在您的目标系统上运行。

顺便说一句,您可能想查看Java Instrumentation API,因为它包装了 JVMTI 并提供了更方便的接口。

【讨论】:

  • 嗨。非常感谢您的链接。我会试试看。这些演示看起来与 1.6 演示有点不同。没有 java_crw_demo 目录,但我看到它们至少在 heapTracker 中包含了 src。我会尝试编译这些。虽然,我看到至少对于 heapTracker,它似乎已经被编译了。非常感谢!
  • 哦,我看到下载页面也有mac下载。非常感谢! :-)
最近更新 更多