调试内置的java apis

时间:2011-08-17 12:45:53

标签: java debugging api

我正在使用java.security包来验证一些数字签名。基本上我正在调用Signature类的verify方法。我想了解验证方法的内部逻辑。因此,我从rt.jar中提取了Signature.class,对其进行了反编译,然后将其放入我的eclipse项目中的正确的包结构中。但是,它没有编译和抱怨“无法解决”错误。我正在通过反编译其他内置的java类来逐个修复它们,但这似乎是无穷无尽的。这是调试内置java api的正确方法还是有其他推荐方法?

3 个答案:

答案 0 :(得分:1)

您可以在Eclipse中附加JDK源:JDK安装中应该有一个src.jar。这样您就可以方便地浏览和调试它们。不包括一些javax和com.sun类,但它是一个开始。

重新编译和替换JDK类非常困难。

答案 1 :(得分:1)

您看到了the java.security.debug flag吗?

  

...如果您希望监控安全访问,可以设置java.security.debug系统属性。要查看所有调试选项的列表,请使用帮助设置,所有设置允许您查看所有内容:

java -Djava.security.debug=help foo

all       turn on all debugging

access    print all checkPermission results
jar       jar verification
policy    loading and granting
scl       permissions SecureClassLoader assigns

The following can be used with access:

stack     include stack trace
domain    dumps all domains in context
failure   before throwing exception, dump stack
          and domain that didn't have permission

答案 2 :(得分:0)

  

这是调试内置java api的正确方法还是有其他推荐方法?

我使用attach source将API的源代码添加到eclipse中,并使用默认调试器来调试应用程序