我正在尝试使用 BCEL使用javaagent.jar检测 jar 文件( main.jar) 。基本上,无论何时我在字节码中找到任何负载,我都试图在“someclass”类中插入一个对名为 Fun() 的静态函数的函数调用
if (opcode instanceof aload) {
iFactory.createInvoke("someclass", "fun", Type.VOID, new Type[]{}, Constants.INVOKESTATIC);
我的“someclass”类驻留在 javaagent.jar
在执行
java -javaagent:javaagent.jar -jar main.jar
或者
java -javaagent:javaagent.jar -jar main.jar javaagent.jar
或(我为我的“someclass”创建了一个单独的 jar,名为someclasscontained.jar)
java -cp someclasscontained.jar -javaagent:javaagent.jar -jar main.jar
我正进入(状态
Exception in thread "main" java.lang.NoClassDefFoundError: someclass
错误。我尝试使用-bootclasspath/p选项,但仍然无法正常工作。有人知道吗?
(1)所有 jar 都位于同一个文件夹中 2)这个问题可能与一个问题相似,但该问题的解决方案不正确/不令人满意,所以请不要将其标记为重复)