Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试内置java API_Java_Debugging_Api - Fatal编程技术网

调试内置java API

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

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

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


我已经在eclipse中添加了使用的API源代码,并使用默认调试器调试应用程序

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

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

您看到了吗

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


为什么要反编译类文件?您可以从安装Java时附带的src.zip中获取真实文件。这正是我正在做的。我正在反编译并在我的项目中添加该API的源代码。但它会给出其他错误,当我修复这些错误时,它仍然会给出新的错误。所以我问是否有其他的方法。不,这不是你正在做的。我要求从src.zip获取jdk的源代码,如上所述,而不进行反编译。将其附加到eclipse添加断点并启动项目到debugJigar是正确的。如果您使用的是开放源代码项目,只需将源代码下载到本地文件盒上的某个位置即可。将源代码附加到Eclipse内部的JAR,然后您可以逐步查看代码以了解实际情况。我在Hibernate上取得了巨大的成功。
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