在jar文件中查看类,方法,属性等的最简单方法是什么?我正在寻找与非常有用的Lutz Roeder .NET Reflector等效的东西-适用于Java
在jar文件中查看类,方法,属性等的最简单方法是什么?我正在寻找与非常有用的Lutz Roeder .NET Reflector等效的东西-适用于Java
Answers:
使用JDK,jar -tf
将列出jar中的文件。javap
将为您提供来自特定类文件的更多详细信息。
tar
使用强制性选项后不需要连字符。
C:\Program Files\Java\jdk<version>\bin
先将其添加到系统或用户PATH环境变量中,然后才能jar
用作系统命令。(其中<version>是您的jdk版本内部版本号。请检入C:\Program Files\Java
)
jar tf test.jar | grep MANIFEST
我通常使用7-Zip打开它们。它至少允许查看包,类和资源。
如果我需要查看方法或字段,可以使用Jad,但是当然,最好依靠(好的)JavaDoc ...
现在,在SO的某处提到了一些Eclipse插件,以查找类位于哪个jar文件中,也许它们可以做更多的事情(即,您的要求)。
[编辑]对SO线程的引用。不是问什么,而是以某种方式相关,因此很有用:Java:在给定类名的情况下,我如何知道要使用哪个jar文件?
我个人使用的是JD-GUI。它是一个免费的“反编译器”,因为它使您可以查看源代码,类和类中的对象,以及在左侧的树形菜单中查看文件结构。但是,它不允许您直接修改类。
JD-GUI的网站:http : //jd.benow.ca/
如果有人还不知道,JAR文件就是一个ZIP文件,其中包含程序的类,资源等以及一些元数据。您可以提取其中一个以查看其组合方式。
因此,我使用的unzip
命令很容易记住和使用。
unzip -l <jar-file-name>.jar
举例来说,如果你有一个jar文件与名称test.jar
,然后unzip -l test.jar
将列出的jar文件的所有内容。
尽管所有其他答案都不错,但在大多数答案中,您将必须使用某些软件,例如7 zip
或JDK
或其他某些eclipse工具,而这并不需要您拥有任何较大的软件,并且它在Linux中是默认提供的和Mac,因此非常轻巧且易于使用。
您也可以使用zipinfo <your jar file>
。如果您的操作系统支持此功能。
扩展Tom Hawtin答案,您可以通过管道传输列表过滤出所需的类或文件:
jar tf my-fat-jar-file.jar | grep filename
这应该适用于bash / zsh和类似的东西,或者emacs的eshell。
附加信息:https : //docs.oracle.com/javase/tutorial/deployment/jar/view.html
jar -tvf file_name.jar
上面只会打印文件名。
要查看文件的内容,可以通过以下方式将文件提取到文件夹中:
jar -xvf file_name.jar
这将解压缩jar文件并将内容放在您运行此文件的目录中。
或者在Windows中,将.jar文件重命名为.zip,然后您可以解压缩以提取并查看jar文件的内容。由于jar在内部是一个zip文件。
Jad笨拙,不再维护。我已切换到“ Java Decompiler”,它具有一个漂亮的UI并支持新的语言功能。
但是,我使用的每个反编译器都会遇到无法成功反编译的代码。对于这些,有助于理解标准JDK工具javap产生的反汇编Java字节代码。
嗯,一个jar文件只是一个zip文件,因此,如果将其解压缩(使用自己喜欢的解压缩工具),则将所有文件都保存在其中。
如果要查看类文件以查看方法,则需要一个工具。正如PhiLho所提到的,Eclipse能够做到这一点(默认情况下),我想大多数Java IDE都可以做到这一点。
在Eclipse 3.4中
如果也看到源代码是一个问题,请打开一个新问题。
为了在Jar文件级别(作为zip文件)进行导航,我使用了7zip,它工作得很好,并允许查看和编辑条目,这对于解决问题非常有用。
一种方法是在“ Package Explorer”中打开透视图。这样做,您可以看到带有类详细信息的jar的结构。为此,使用包资源管理器检查项目中的库文件夹。
窗口>>显示视图>>其他>> Java >> Package Explorer
另一种方法是,您可以将JarPlug用作eclipse插件。这在eclipse / springsource中有效
如今,您可以使用大多数解压缩实用程序打开它们,然后,如果要查看源代码,只需获取DJ Java Decompiler之类的内容。
Bndtools为Eclipse提供了免费的JAR查看器插件。
添加Eclipse更新站点并仅安装查看器。
我的要求是在jar中查看文件(如属性文件)的内容,而无需实际提取jar。如果有人像我一样到达此线程,请尝试以下命令-
unzip -p myjar.jar myfile.txt
这对我来说很好!
我认为Java Decomplier是您的最佳选择,您可以从此处下载:http ://jd.benow.ca/
我更喜欢JAR Browser,它具有一个简单的界面,您可以在其中浏览多个JAR,并同时在多个JAR中搜索特定的类。
这个Jar Explorer足够好。
支持三种反编译器类型:JD,Procyon和Fernflower。
允许搜索任何Java归档文件中的文件和重复项。
用户还可以通过D&D文件修改jar,并编辑一些非类文件。
我使用JarExplorer或JarVisualizer。
您可以尝试JarNavigator来查看和搜索jar文件的内容。