查看.jar​​文件的内容

时间:2008-11-26 12:19:43

标签: java jar viewer

在jar文件中查看类,方法,属性等的最简单方法是什么? 我正在寻找相当于非常有用的 Lutz Roeder .NET Reflector 的东西 - 用于Java

33 个答案:

答案 0 :(得分:234)

使用JDK,jar -tf将列出jar中的文件。 javap会从特定的类文件中提供更多详细信息。

答案 1 :(得分:48)

我通常用7-Zip打开它们...它至少可以看到包和类以及资源 我是否需要查看方法或字段,我会使用Jad,但当然,最好依靠(好)JavaDoc ......

现在,SO上的某个地方提到了一些Eclipse插件,为了找到一个类所在的jar文件,也许他们可以做更多的事情(即你所要求的)。

[编辑]参考SO线程。不是被问到什么,而是以某种方式相关,因此有用:Java: How do I know which jar file to use given a class name?

答案 2 :(得分:32)

我个人使用的是JD-GUI。它是一个免费的“反编译器”,因为它允许您查看类中的源代码,类和对象,以及在左侧树状菜单中查看文件结构。但是,它不允许您直接修改类。

JD-GUI的网站:http://jd.benow.ca/

答案 3 :(得分:16)

方法名称,字段等

通过在IDE中向项目添加jar,您通常可以查看方法和字段名称,但不能查看详细的实现。 NetBeans可以做到,可能是Eclipse,可能是IntelliJ等。您可以直接在IDE中浏览jar结构。

只是内容

对于查看内容等内容,您可以使用:

  • jar tvf jarfile.jar
  • winzip或任何拉链工具

源代码

要访问源代码,您可以使用反编译器(如JAD)或其中一个前端或其他反编译器。如果代码被混淆了,那么......

答案 4 :(得分:9)

扩展Tom Hawtin的回答,您可以通过管道列出来过滤掉所需的类或文件:

jar tf my-fat-jar-file.jar | grep filename

这应该适用于bash / zsh和similars,或者emacs' ESHELL。

其他信息:https://docs.oracle.com/javase/tutorial/deployment/jar/view.html

答案 5 :(得分:7)

<强> Use WinRar 即可。它将以完整的方式为您打开文件夹结构。还允许文件内编辑,同时保留路径。

Afterall,JAR文件只是ZIP存档。

答案 6 :(得分:7)

例如,使用unzip -l <jar-file-name>.jar,如果您有一个名为test.jar的jar文件,那么unzip -l test.jar将列出jar文件的内容。

根据unzip命令的手册和选项 - l。

  

列出档案文件(短格式)。名称,未压缩文件   大小和修改指定文件的日期和时间   打印,以及指定的所有文件的总计。如果UnZip是   用OS2_EAS定义编译,                 -l选项还列出了存储的OS / 2扩展属性(EA)和OS / 2访问控制列表(ACL)的大小列。   另外,zipfile注释和单个文件注释(如果有的话)   显示。如果是文件                 从单个案例文件系统(例如,旧的MS-DOS FAT文件系统)归档并且给出了-L选项,   filename被转换为小写,并以插入符号(^)

作为前缀

您也可以使用zipinfo <your jar file>。如果你的操作系统支持这个

答案 7 :(得分:6)

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

  1. F2 & Rename to jarfile.zip //使用任何解压缩程序......

  2. jar tvf jarfile.jar

  3. jar tf jarfile.jar

答案 8 :(得分:5)

如果我理解正确,你不仅要看到类,还要看到方法,属性等。我知道可以做到的唯一工具是Eclipse - 如果你向项目类路径添加一个jar,你就可以使用常用的包浏览器浏览其类和方法和属性。

无论如何,这对于一个好的独立Java工具来说是一个好主意

答案 9 :(得分:4)

Jad很笨拙,不再维持。我已切换到"Java Decompiler",它具有灵活的用户界面并支持新的语言功能。

但是,我使用的每个反编译器都会遇到代码无法成功反编译的情况。对于那些,有助于理解标准JDK工具javap生成的反汇编Java字节代码。

答案 10 :(得分:3)

如果您在Windows中并使用PowerShell,并且您正在寻找jar中的文件,您可以这样做:

jar -tf .\[JAR_NAME] | where {$_ -match "[FILENAME]"}

答案 11 :(得分:3)

您可以通过执行以下操作,从Windows资源管理器中查看JAR文件,例如ZIP文件:

  • 以管理员身份运行命令提示符
  • 从命令行输入:

    assoc .jar = CompressedFolder

  • 在使用它的同时,您也可以对WAR和EAR文件执行相同的操作:

    assoc .war = CompressedFolder

    assoc .ear = CompressedFolder

答案 12 :(得分:3)

执行此操作的一种方法是在“Package explorer”中打开透视图。这样做你可以看到你的jar的结构与类详细信息。为此,请使用package explorer检查项目中的库文件夹。

窗口&gt;&gt;显示视图&gt;&gt;其他&gt;&gt; Java&gt;&gt;包浏览器

另一种方法是,你可以使用JarPlug作为eclipse插件。这适用于eclipse / springsource

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

答案 13 :(得分:3)

在Eclipse 3.4中

  1. 将有问题的jar文件拖到Java项目中。将出现jar文件的副本。
  2. 右键单击jar文件,然后选择“Build Path” - &gt; “添加到构建路径”。
  3. 将Jar文件移动到“Referenced Libraries”节点,在该节点中可以在Project Explorer窗格中打开和导航它。
  4. 如果看到源代码也是个问题,请打开一个新问题。

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

答案 14 :(得分:3)

好吧,jar文件只是一个zip文件,所以如果你解压缩它(使用你最喜欢的解压缩工具),你就可以获得所有文件。

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

答案 15 :(得分:2)

如今要使用大多数解压缩实用程序打开它们,如果要查看源代码,可以使用DJ Java Decompiler

答案 16 :(得分:2)

Bndtools为Eclipse提供了一个免费的JAR查看器插件。

添加Eclipse update site并仅安装查看器。

enter image description here

答案 17 :(得分:2)

jar -tvf file_name.jar

上面只会打印文件名

要查看文件的内容,可以通过以下方式提取文件夹中的文件

jar -xvf file_name.jar

这将解压缩jar文件并将内容放在您运行此文件的目录中。

或者在Windows中,将.jar文件重命名为.zip,然后可以解压缩以提取并查看jar文件的内容。由于jar在内部是一个zip文件。

答案 18 :(得分:1)

我已将Windows中的默认操作设置为“使用WinZip打开”。这样可以轻松地将JAR作为归档进行管理。您甚至可以手动添加/删除文件。

答案 19 :(得分:1)

查看 jar 文件中的类、方法、属性等的最简单方法是使用诸如“winrar”和“7-Zip”之类的程序。

  • 如果未安装,请下载 winrar 或 7-zip 程序
  • 然后右键单击您的 jar 文件
  • 点击使用 winrar 或 7-zip 打开

答案 20 :(得分:1)

我使用JarExplorer或JarVisualizer

答案 21 :(得分:1)

Eclipse 3.4 JDT

这不是最快捷的方式,因为你必须先将它拖入你的日食。 但即使启用了反编译,您也将拥有完整的java类浏览。

答案 22 :(得分:1)

我更喜欢JAR Browser,它有一个简单的界面,您可以在其中浏览多个JAR,并同时搜索多个JAR中的特定类。

答案 23 :(得分:1)

我认为Java Decomplier是您可以从这里下载的最佳选择:http://jd.benow.ca/ Preview http://jd.benow.ca/img/screenshot17.png

答案 24 :(得分:1)

我的要求是查看jar内文件(例如属性文件)的内容,而无需实际提取jar。如果有人像我一样到达此线程,请尝试以下命令-

unzip -p myjar.jar myfile.txt

这对我来说很好!

答案 25 :(得分:0)

如果你甚至不知道你的 jar 路径在哪里或者你的 JDK 路径在每个主机上都不同,那么大多数人都正确回答了这里是 linux 的一种解决方案

$(find / -type f -name "jar" 2>&1 |grep '/JDK' |head -1 ) tf FULLY_QUALIFIED_NAME_TO_YOUR_FILE

答案 26 :(得分:0)

这个Jar Explorer足够好。
支持三种反编译器类型:JD,Procyon和Fernflower。
允许在任何Java归档文件中搜索文件和重复项。
用户还可以通过D&D文件修改jar,并编辑一些非类文件。 enter image description here enter image description here

答案 27 :(得分:0)

答案 28 :(得分:0)

java -xf some-j.jar将解压缩JAR文件。

答案 29 :(得分:0)

您可以尝试JarSpy。我使用了它的IDEA插件版本。

答案 30 :(得分:0)

您可以尝试JarNavigator查看和搜索jar文件的内容。

答案 31 :(得分:0)

您的IDE也应支持此功能。我的IDE(SlickeEdit)将其称为“标记库”。只需为jar文件添加标记库,您就应该能够以分层方式浏览类和方法。

答案 32 :(得分:0)

在Mac上有Jarzilla