我多年前就习惯使用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代码的代理似乎不起作用。我想我可能错误地编译了它们。
有问题的演示是:
无论如何,关于代理商的谷歌搜索似乎暗示代理商仍在使用jdk 1.7,但似乎没有曾经有过的示例支持。 Oracle是否试图限制(或日落)代理?
感谢。
答案 0 :(得分:0)
JVMTI演示可能会也可能不会与您的JDK安装捆绑在一起,具体取决于您从何处获取。他们没有(afaict)来自OpenJDK安装。但无论如何,在Oracle Download Page的所有情况下,演示仍然可用。下载tarball for Mac,将其展开到一个目录,然后浏览它。
在相对文件夹jdk1.7.0_10/demo/jvmti
中,您会找到以下演示:
drwxr-xr-x @ 5 tuoyo staff 170 11月29日19:30 compiledMethodLoad
drwxr-xr-x @ 5 tuoyo staff 170 11月29日19:30 gctest
drwxr-xr-x @ 6 tuoyo staff 204 11月29日19:30 heapTracker
drwxr-xr-x @ 5 tuoyo staff 170 11月29日19:30 heapViewer
drwxr-xr-x @ 5 tuoyo staff 170 11月29日19:30 hprof
drwxr-xr-x @ 6 tuoyo staff 11月29日19:30最短时间
drwxr-xr-x @ 6 tuoyo staff 204 11月29日19:30 mtrace
drwxr-xr-x @ 5 tuoyo staff 170 11月29日19:30 versionCheck
drwxr-xr-x @ 5 tuoyo staff 170 11月29日19:30服务员
每个单独的演示都有一个包含代码的源ZIP文件和一个示例makefile。您很可能需要调整makefile以使构建在目标系统上运行。
另外,您可能需要查看Java Instrumentation API,因为它包装了JVMTI并提供了更方便的界面。