使用dnsjava库时,我遇到了一个令人沮丧和令人困惑的问题,我可以Type.A
正确调用但调用Type.value(str)
会抛出java.lang.NoClassDefFoundError
.
System.out.println(org.xbill.DNS.Type.A); // works
if (org.xbill.DNS.Type.value(type) == -1) { // throws NoClassDefFoundError
/* logic */
}
此代码正在从 jar 中执行,jar
并且 jar 中的其他类正确使用该库。
为什么以及如何会发生这种情况?我该如何进一步调试呢?
谢谢!
编辑
乔恩斯基特是正确的。一位朋友向我展示了如何使用javap -c
,我将值更改为更独特的类型,Type.AAAA,其值为 28:
878: getstatic #116; //Field java/lang/System.out:Ljava/io/PrintStream;
881: bipush 28