- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Java 9(特别是 Jigsaw)中是否有任何计划来支持 Java 监控代理的特殊要求?
通常,监控代理需要能够访问默认情况下原始 Java 应用程序不可用的类、包和模块。通过 -javaagent 命令行参数加载到 JVM 中的监控代理不会作为模块加载,即使 jar 文件包含 module-info.class 文件也是如此。我能够为我的监控代理提供所需权限的唯一方法是添加命令行参数,这些参数为所有未命名的模块提供这些权限。
最佳答案
Instrumentation
class was extended使用允许重新定义任何模块的方法。它允许您添加额外的模块读取、导出、打开、服务使用和提供:
void redefineModule(Module module,
Set<Module> extraReads,
Map<String,Set<Module>> extraExports,
Map<String,Set<Module>> extraOpens,
Set<Class<?>> extraUses,
Map<Class<?>,List<Class<?>>> extraProvides);
ClassFileTransformer
API已扩展为注册 Java
Module
转型后:
default byte[] transform(Module module,
ClassLoader loader,
String className,
Class<?> classBeingRedefined,
ProtectionDomain protectionDomain,
byte[] classfileBuffer)
throws IllegalClassFormatException;
关于monitoring - Java 9 Jigsaw 对 javaagent 的支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42403069/
在我的项目中,我想分两个阶段转换字节码。顺序很重要。 首先,我需要更改方法定义 然后调用方法的方式 例如 从 String hello() 更改定义至 String hello(String s) 从
我通过 使用 javaagent(带有 Javaassit) premain(String agentArgs, Instrumentation inst) 方法,我很好奇为什么 ClassFileT
我们编写了一个 java 代理,其中使用 java.awt.TrayIcon 提供某种 GUI。当我们使用此代理时,例如Tomcat,我们遇到以下问题: 用户使用 shell 脚本启动 Tomcat
此调用有效。 java -ea -cp ~/Documents/workspace/export/testProject1/"*"-javaagent:/home/jack/Documents/wor
我正在编写一个 javaagent 来监视应用程序。它启动服务器并显示计算的指标。 如何配置我的代理,以便每当应用程序关闭时,都会执行一些清理操作,然后代理退出?我研究过关闭 Hook ,但它们需要访
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 7 年前。 Improv
我正在尝试使用一个名为 LoggerAgent 的 javaagent 来获取一些 Java 应用程序日志的详细信息。但是我收到了 ClassNotDefinedException: Exceptio
我正在尝试使用以下方法启动我的网络应用程序: java -jar application.jar 我已经嵌入了 Jetty 并使用了 Maven 程序集来构建所需的 jar,这一切都工作得很好,但是我
我像这样设置我的javaagent: -javaagent:/usr/pkg/tomcat/lib/aspectjweaver-1.7.3.jar 但它不起作用,所以我有兴趣查看日志。如果我想获取日志
我有一个要求,即当客户端连接到服务器时,服务器必须查明客户端是否使用 -javaagent: 运行?服务器和客户端都是用 java 编写的。有没有办法让服务器获取客户端正在运行的 java 选项? 最
是是否可以拦截方法调用并使用丰富的参数调用此拦截的方法?我的情况是我必须拦截例如logger.info("foo"),丰富消息参数,例如“foo.bar”并调用 logger.info(“foo.ba
如何检查 javaagent 是否已注入(inject) JVM 或禁用 javagent 的附加?由于安全原因,我试图防止我的应用程序在运行时被修改。 我知道如何防止 javaagent 在启动时加
我试图制作简单的 java 分析器并使用 javaagent 来监视内存使用情况。这是我的 javaagent 实现的一部分: import java.lang.instrument.ClassFil
您好,我正在尝试向我的 javaagent 添加调试点。我有两个单独的类用于 premain 方法和转换方法。为代理类添加的日志按预期打印。但在 ClassFileTransformer 类中,它会打
我一直在尝试从检测方法中获取值。使用 $1, $0 获取参数值和当前对象变量效果很好。但现在我想从该方法中使用的对象中获取值。 举个例子,假设我正在检测 org.h2.jdbc.JdbcPrepare
当我尝试使用 IBM JDK 运行简单的 jMockit/JUnit 测试时,出现以下异常。 java.lang.ExceptionInInitializerError at java.lan
我使用 ASM 为 javaagent 实现了一个 ClassFileTransformer。因为它有一些bug,我想为它写一个JUnit测试用例。我该怎么做? 使用我认为的伪代码: // Have
我正在尝试开发一个 javaagent,它可以在 asm-4 的帮助下检测代码。现在我遇到了一个非常基本的问题,javaagent 的类加载器没有看到 asm 依赖项,因此失败了。我是否必须提供一个包
我正在尝试使用 java.lang.instrument API 添加对 java.lang.Object 构造函数的静态方法调用。我知道我的基础知识是正确的,因为如果我调用 System.gc()
在实现真正的东西之前,我试图创建一个简单的 Java 代理程序。我无法让它运行。显然我有某种配置或类路径问题。再多的寻找和尝试也没有给我带来问题。 如果我运行: java -cp ./demoAgen
我是一名优秀的程序员,十分优秀!