Java Eclipse:有没有办法区分jar和项目?
我有一个.jar文件,它代表了一个我试图处理的插件。这是插件的旧版本,而更新版本是由其他人编写的。我有这个新版本作为一个项目 较新的项目充满了.java文件,而旧的插件充满了.class文件。我可以将jar作为项目导入,但它仍然是所有类文件。类文件和java文件之间的差异不是特别大,我想看看它们之间的差异。但是,当我现在这样做时,文本比较将.class文件从编辑器中的正常表示形式更改为二进制表示形式。我知道如果它们是同一类型的文件,我可以选择这两个并点击“比较”。如何在.class和.java文件之间实现这一点,或者如何将两者转换为另一个文件,以便能够对两者进行比较Java Eclipse:有没有办法区分jar和项目?,java,eclipse,Java,Eclipse,我有一个.jar文件,它代表了一个我试图处理的插件。这是插件的旧版本,而更新版本是由其他人编写的。我有这个新版本作为一个项目 较新的项目充满了.java文件,而旧的插件充满了.class文件。我可以将jar作为项目导入,但它仍然是所有类文件。类文件和java文件之间的差异不是特别大,我想看看它们之间的差异。但是,当我现在这样做时,文本比较将.class文件从编辑器中的正常表示形式更改为二进制表示形式。我知道如果它们是同一类型的文件,我可以选择这两个并点击“比较”。如何在.class和.java文
最好的方法是,我可以通过将.class文件转换为.java文件来编辑jar。您似乎需要一个反编译器来将java.class文件(字节码)转换回原始的.java源文件(文本)。然后您可以比较这两个文本文件。这似乎很有用:您可以使用烟尘(http://www.sable.mcgill.ca/soot/)这样做。可以采用两种方法:
因为它是一个插件,所以我可以将它作为插件项目导入,并且有一个包含源文件夹的框。当我检查是否访问了.java代码并成功地进行了区分时。我对编译器不是特别了解,但反编译不会因为编译器优化而产生不同的源代码吗?是的,有时反编译不会产生完全相同的源代码。也许对于您正在进行的差异类型来说,这已经足够了?您当然不能按原样将字节码与源文件区分开来。