为什么在Eclipse中查看包含Jar库时看不到代码?

时间:2014-08-08 16:37:50

标签: java eclipse file jar include

那里似乎没有任何代码。我期望看到类声明,所以我可以看到代码的作用,而不是那些

他们是以某种方式预编译的吗?包含Jar文件和纯代码之间的区别是什么?

what is this?

3 个答案:

答案 0 :(得分:1)

您正在查看.class文件,这是在编译.java文件时生成的。要查看程序的功能,您必须查看.java文件。你可以参考官方的java文档。

<。> .jar文件是扩展名为.jar的打包文件,它包含已编译的java文件及其类文件。此文件通常导入到项目中以使用该包中定义的类。

你可以使用&#34; jar xf jar-file&#34;命令在命令提示符/终端中从jar中提取文件并查看包。

答案 1 :(得分:0)

JAR通常包含已编译的类文件。它也可能包含源文件,或者可能有一个单独的JAR包含源文件,但不一定如此。

如果要在项目中使用库,则可以使用已编译的类文件的JAR。如果您需要源代码,那么您必须查看它是否可以从您下载的地方获得。如果你想要的只是看看如何使用这些类,那么你可能想要的是你正在使用的库的JavaDocs。这是一个基于HTML的API文档。

答案 2 :(得分:0)

嗯,这是因为您没有附加上述dnsns.jar的任何来源。您可以将源附加到Eclipse中的现有JAR文件。请参阅此SO帖子:Is there an easy way to attach source in Eclipse?

对于这个特定的dnsns.jar,它是您的JRE的一部分,如果您无法在IDE中看到它的源,那么这意味着您在IDE中设置的Java缺少源。如果您的安装没有源代码(src.zip),那么您可以按照此SO帖子中的说明手动获取它:Where to find Java JDK Source Code?

编辑:或者,您也可以使用反编译器(例如http://jd.benow.ca/)从字节代码对源进行反向工程,但它可能与原始源不完全匹配,但您可以理解整体思路。您可以将反编译器添加为在eclipse .class中打开Windows > Preferences > General > Editors > File Associations文件的默认程序。选择*.class过滤器并将反编译器添加为程序。但是,它不像将源附加到JAR那样干净,但如果您无权访问源,则可能有效。

EDIT2:关于你的问题

  

包含Jar文件和纯代码

之间有什么区别

Eclipse可以为您自己的代码找到.java个文件,因为它们显然位于您的工作区中。但是当您将JAR文件添加为库时,它可能包含源(.java)。如果源可用,eclipse可以默认显示它。如果没有,则必须手动添加。