0

メソッドにコードを挿入するために ASM を使用しています。

    @Override
    public void visitCode() {
        visitMethodInsn(Opcodes.INVOKESTATIC, "sssss/CopyOfsss", "foo", "()V");

        super.visitCode();
    }


Exception in thread "main" java.lang.NoClassDefFoundError: sssss/CopyOfsss
    at java.util.regex.Pattern$Node.match(Pattern.java)
    at java.util.regex.Pattern$CharProperty.match(Pattern.java:3345)
    at java.util.regex.Pattern$Curly.match0(Pattern.java:3760)
    at java.util.regex.Pattern$Curly.match(Pattern.java:3744)
    at java.util.regex.Matcher.match(Matcher.java:1127)
    at java.util.regex.Matcher.matches(Matcher.java:502)
    at sssss.CopyOfsss.main(CopyOfsss.java:26)

助けてください〜

4

1 に答える 1

1

さて、私は私の答えを得ました。これは、注入されたクラスがブートストラップ クラス ローダーによって読み込まれるためです。そのため、注入されたコードは「CopyOfsssss」でメソッドを呼び出すことができません。この記事を参照してください。解決策は、「-Xbootclasspath/a:/path/yourclass.lib」を jvm 引数に追加することです。「Xbootclasspath」の後の「/a」は追加を意味することに注意してください。

于 2012-10-29T07:03:15.707 に答える