查看.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字节码。

如果你想看看里面有什么,只需重新命名为下面的第一个选项..

  1. F2 & Rename to jarfile.zip //使用任何F2 & Rename to jarfile.zip

  2. jar tvf jarfile.jar

  3. jar tf jarfile.jar

那么,jar文件只是一个zip文件,所以如果你解压缩(用你最喜欢的解压缩工具),你会得到所有的文件。

如果你想查看类文件来查看方法,你需要一个工具。 正如PhiLho所言,Eclipse能够做到这一点(默认情况下),而且我认为大多数Java IDE都可以做到这一点。

在Eclipse 3.4中做

  1. 将有问题的jar文件拖到一个Java项目中。 出现一个jar文件的副本。
  2. 右键点击jar文件,select“Build Path” – >“Add to Build Path”。
  3. Jar文件被移动到“Referenced Libraries”节点,在那里它可以在Project Explorer窗格中打开和导航。

如果看到源代码也是一个问题,请打开一个新的问题。

对于Jar文件级别的导航(作为zip文件),我使用了7zip,效果很好,并且可以查看和编辑对于故障排除非常有用的条目。

一种方法是打开“包资源pipe理器”的视angular。 这样做,你可以看到你的jar的结构与类的细节。 为此,使用包资源pipe理器检查项目中的库文件夹。

窗口>>显示视图>>其他>> Java >> Package Explorer

另一种方法是,你可以使用JarPlug作为eclipse插件。 这在eclipse / springsource中有效

http://jar-plug.sourceforge.net/

如果你在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选项,则文件名将转换为小写字母并带有插入符号(^)