有没有办法从可执行的.jar文件(Java ME)中提取源代码?

但是请注意,这样做可能是非法的,具体取决于您是否拥有罐子的版权,居住的国家和目的。

如果它是开源的,请从开发人员那里获取源代码。 否则"将对遵守EULA表示满意"。

使用JD GUI。打开应用程序,将您的JAR文件拖放到其中。

没有JD GUI,有没有办法从.jar获取源代码?

@ZulqurnainJutt使用@elachances答案jar xf filename.jar中提到的

您可以使用以下命令提取一个jar文件:

jar xf filename.jar

参考:Oracle的JAR文档

这等效于将filename.jar重命名为filename.jar.zip,然后将其解压缩。

这不会提取源代码。它提取编译的源代码。

@caffinatedmonkey会在jar包含Java文件时提取源代码,例如名称通常以" -sources"结尾的罐子。实际上,仅在jar不包含任何Java源文件时才提取.class文件。

我相信这很容易做到。您始终可以将jar文件的源文件(Java文件)提取到zip中。

步骤以jar格式获取jar文件的来源:

从http://techieme.in/resources-needed/下载JAD并将其保存在任何位置

在系统上的位置。

将您想要其来源的jar拖放到JAD上。

3 JAD UI将以树格式打开所有包结构。

单击文件菜单,然后选择保存jar源。

它将源文件保存为与罐子名称相同的zip文件。

希望这可以帮助。

由于某种原因,该链接已失效,因此请从可下载JDGUI的位置添加该链接

@Nitesh ...我将发布托管在我网站上的链接...请从那里下载

techieme链接中的版本效果很好,谢谢!

您的JAR可能包含源代码和javadoc,在这种情况下,您可以简单地使用jar xf my.jar提取它们。

否则,您可以使用adarshr的答案中提到的反编译器:

Use JD GUI. Open the application, drag

and drop your JAR file into it.

请注意,.jar文件实际上是.zip文件,可以使用任何ZIP工具打开。

我知道这是一个古老的问题,仍然认为这会帮助某人

1)转到您的jar文件的文件夹。

2)将其扩展名更改为.zip。

3)您一切顺利,只需双击即可轻松将其提取。

注意:我在MAC中对此进行了测试,它可以工作。希望它也可以在Windows上运行。

.jar包含.class文件,而不是.java代码

@JCodex,我正在做一个情感分析工具" opinionfinder"的研究项目,它的jar确实包含了Java AND类文件。因此您的评论并非100%正确。我知道它通常只包含.class,但至少在这种情况下不包含

您的解决方案将仅提取.class文件,而不提取源代码。

似乎JD-GUI是一个多平台工具,实际上可以反编译代码并显示所有包中类的源代码。我尝试了一下,然后可以在MacOS中获得源代码。我已经安装了Java 8。您可以在jd.benow.ca上获取它。不确定它是否适用于大型项目。

需要您所描述方式未提供的源代码

AndroChef Java Decompiler产生了非常好的代码,您可以在项目中直接使用它们。

以上工具将罐子取出。另外,还有其他一些工具和命令可以提取jar。

但是,如果代码被混淆,则无法获取Java代码。

最好的答案

-将.jar文件转换为.zip(在Windows中只需更改扩展名)

-解压缩.zip文件夹

-您将获得完整的.java文件

作为此方法的小提示,确实... jar文件是精美的zip文件。但是,解压缩jar文件很可能会产生* .class文件,即"已编译"的Java文件。可以将类文件"反编译"为普通的Java文件。此功能包含在许多IDE中

这只会解锁课程文件

假设您的JAR文件位于C: Documents and Settings mmeher Desktop jar中,并且JAR文件名为xx.jar,然后在命令提示符下编写以下两个命令:

1> cd C: Documents and Settings mmeher Desktop jar

2> jar xf xx.jar

更多推荐

java提取源文件_关于Java:从.jar文件中提取源代码