有没有办法从可执行的.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文件中提取源代码
发布评论