0

几年前我曾经使用 Java 本地代理,现在我又回到了这个问题上。我在想……他们怎么了?

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

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

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

有问题的演示是:

  • 代理工具
  • gctest
  • 堆跟踪器
  • 堆查看器
  • 教授
  • java_crw_demo
  • 部长
  • 跟踪
  • 版本检查
  • 服务员

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

谢谢。

4

1 回答 1

0

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

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

drwxr-xr-x@ 5 tuoyo 员工 170 Nov 29 19:30 compiledMethodLoad
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 以使构建在您的目标系统上工作。

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

于 2013-04-16T03:13:47.910 回答