查看.jar文件的内容
在jar文件中查看类,方法,属性等最简单的方法是什么? 我正在寻找相当于非常有用的Lutz Roeder .NET Reflector – for Java的东西
使用JDK, jar tf
将列出jar tf
中的文件。 javap
会给你从一个特定的类文件的更多细节。
我通常用7-Zip打开它…它至less可以查看包和类和资源。
我需要看到的方法或领域,我会使用JAD,但当然,最好是依靠(良好的)JavaDoc …
现在,在SO的某个地方被提到了一些Eclipse插件,find一个类所在的jar文件,也许他们可以做更多的事情(即你所要求的)。
[编辑]引用SO线程。 不是什么问,而是相关的,因此是有用的: Java:我怎么知道哪个jar文件使用给定的类名?
我个人使用的是JD-GUI。 这是一个免费的“反编译器”,因为它允许您查看类中的源代码,类和对象,以及在左侧的树形菜单中查看文件结构。 但是,它不允许你直接修改类。
JD-GUI的网站: http : //jd.benow.ca/
方法名称,字段等
通过将IDE添加到IDE中的项目中,通常可以看到方法和字段名称,但不是详细的实现。 NetBeans可以这样做,Eclipse可能,IntelliJ可能等等。您可以直接在IDE中浏览jar结构。
只是内容
对于查看内容等任何事情,您可以使用:
-
jar tvf jarfile.jar
- WinZip或任何压缩工具
源代码
要访问源代码,您可以使用反编译器(如JAD或其前端或其他反编译器之一)。 如果代码被混淆了,那么…
使用WinRar 。 它将以完整的方式为您打开文件夹结构。 还允许进行存档编辑,同时保留path。
最后,一个JAR文件只是一个ZIP压缩文件。
扩展Tom Hawtin的答案,你可以通过pipe道列表来筛选出所需的类或文件:
jar tf my-fat-jar-file.jar | grep filename
这应该在bash / zsh和similars或者emacs的eshell上运行。
其他信息: https : //docs.oracle.com/javase/tutorial/deployment/jar/view.html
如果我理解正确,你不仅要看类,还要看方法,属性等等。 我知道的唯一的工具就是Eclipse – 如果你添加一个jar到project classpath中,你将能够使用普通的package explorer浏览它的类和方法和属性。
无论如何,这是一个好的独立的Java工具的主意
杰德是快乐的,不再维持。 我已经转向“Java反编译器” ,它具有一个漂亮的用户界面,并支持新的语言function。
但是,我使用的每个反编译器都会运行到代码中,但它没有成功反编译。 对于这些,有助于理解由标准JDK工具javap生成的反汇编Java字节码。
如果你想看看里面有什么,只需重新命名为下面的第一个选项..
-
F2 & Rename to jarfile.zip
//使用任何F2 & Rename to jarfile.zip
… -
jar tvf jarfile.jar
-
jar tf jarfile.jar
那么,jar文件只是一个zip文件,所以如果你解压缩(用你最喜欢的解压缩工具),你会得到所有的文件。
如果你想查看类文件来查看方法,你需要一个工具。 正如PhiLho所言,Eclipse能够做到这一点(默认情况下),而且我认为大多数Java IDE都可以做到这一点。
在Eclipse 3.4中做
- 将有问题的jar文件拖到一个Java项目中。 出现一个jar文件的副本。
- 右键点击jar文件,select“Build Path” – >“Add to Build Path”。
- Jar文件被移动到“Referenced Libraries”节点,在那里它可以在Project Explorer窗格中打开和导航。
如果看到源代码也是一个问题,请打开一个新的问题。
对于Jar文件级别的导航(作为zip文件),我使用了7zip,效果很好,并且可以查看和编辑对于故障排除非常有用的条目。
一种方法是打开“包资源pipe理器”的视angular。 这样做,你可以看到你的jar的结构与类的细节。 为此,使用包资源pipe理器检查项目中的库文件夹。
窗口>>显示视图>>其他>> Java >> Package Explorer
另一种方法是,你可以使用JarPlug作为eclipse插件。 这在eclipse / springsource中有效
如果你在Windows和使用PowerShell,你正在寻找一个文件在jar你可以做:
jar -tf .\[JAR_NAME] | where {$_ -match "[FILENAME]"}
现在你可以使用大多数的解压缩工具来打开它们,如果你想查看源代码,那么只需要得到类似于DJ Java Decompiler的东西。
Bndtools为Eclipse提供了一个免费的JAR查看器插件。
添加Eclipse更新站点并仅安装查看器。
我更喜欢JAR浏览器 ,它有一个简单的界面,您可以浏览多个JAR,并同时在多个JAR中search特定的类。
Eclipse 3.4 JDT
这不是最快的方法,因为你必须首先将其拖入日蚀。 但是,即使启用了反编译,您也将拥有完整的Java类浏览function。
我已经在Windows中将默认行为设置为“用WinZip打开”。 这使得将JAR作为档案pipe理变得容易。 你甚至可以手动添加/删除文件。
我使用JarExplorer或JarVisualizer 。
我认为Java Decomplier是您可以从这里下载的最佳select: http ://jd.benow.ca/ 预览http://jd.benow.ca/img/screenshot17.png
你可以试试JarSpy 。 有一个我使用的IDEA插件版本。
你的IDE也应该支持这个。 我的IDE(SlickeEdit)称它为“标签库”。 简单地为jar文件添加一个标签库,你应该能够以层次的方式浏览类和方法。
在Mac上有Jarzilla
您可以尝试JarNavigator来查看和searchjar文件的内容。
使用unzip -l <jar-file-name>.jar
例如,如果你有一个名为test.jar的jar文件,那么unzip -l test.jar
将列出jar文件的内容。
根据带选项-l的unzip命令手册。
列表档案文件(短格式)。 打印指定文件的名称,未压缩的文件大小和修改date和时间以及指定的所有文件的总计。 如果UnZip是使用定义的OS2_EAS编译的,则-l选项还会列出存储的OS / 2扩展属性(EA)和OS / 2访问控制列表(ACL)大小的列。 另外还显示zipfile注释和个别文件注释(如果有的话)。 如果从单个文件系统(例如,旧的MS-DOS FAT文件系统)归档文件,并且已给出-L选项,则文件名将转换为小写字母并带有插入符号(^)