CMD无法识别dex2jar- Android Apk

14

我想从APK文件中获取源代码并使用这个解决方案:有没有一种方法可以从一个APK文件中获取源代码?

我尝试将dex文件转换成jar文件,我使用了dex2jar,但命令提示符无法识别此命令。

dex2jar classes.dex

"dex2jar未被识别为内部或外部命令"

dex2jar是否已经过时?

我可以使用什么工具将dex转换为jar?


它不能被弃用,因为它从未成为Windows操作系统的一部分。您是否从包含“dex2jar.bat”的相同目录运行此程序?如果需要在另一个目录中工作,您也可以通过绝对路径访问它。 - A--C
2
我现在在正确的目录下运行dex2jar.bat classes.dex,但是仍然出现相同的错误:“dex2jar.bat不被识别为内部或外部命令...” - Anil Kocabiyik
10个回答

21

以上答案都对我没用,我通过以下方式得以使其正常工作, 无需classes.dex文件。 请仔细按照以下说明操作:

  1. 下载最新版本的dex2jar,我能够在谷歌上找到最新版并从sourceforge中下载。 如果您没有找到,请访问链接:http://sourceforge.net/projects/dex2jar/
  2. 将apk文件放入dex2jar文件夹中。

  3. 打开命令提示符[Win用户]并导航到您放置apk文件的文件夹。

  4. 输入此命令 d2j-dex2jar.bat someApk.apk ,您将获得jar文件[使用jd-ui工具读取jar文件]。 对于Mac用户,请参考这里[链接中的第4点]获取合适的终端命令http://sourceforge.net/p/dex2jar/wiki/UserGuide/


谢谢..!!! 我的笔记本电脑被盗了,我失去了我的第一个应用程序的源代码。看到所有这些答案,我正在失去希望能够找回我的源代码。现在我有了我的源代码。 - S.Ahsan
你能再详细解释一下吗?因为它在我这里运行得非常完美。 - Mightian
非常简单的解释。我现在能够获取源代码了。+1 - Pihu
谢谢@PriyankaMinhas,很高兴能帮到你。 - Mightian

18

使用命令

d2j-dex2jar classes.dex

代替

dex2jar classes.dex

同时,确保您在第一步中指定的apk源文件所在文件夹中提取了dex2jar文件。

(参考链接:给出的例子


1
我尝试了你说的那个方法,但它没有起作用。 - Seenu69
你是否下载了正确的dex2jar文件?请从这里尝试下载https://github.com/pxb1988/dex2jar - mpsbhat

7

如果您正在使用dex2jar-2.x jar文件,则会出现问题。请尝试下载dex2jar-0.0.9.15 jar文件,然后再尝试该命令。


您可以在此处下载dex2jar-0.0.9.15:https://github.com/pxb1988/dex2jar/releases - Chris

1

以下是我采用的步骤:

  • 解压缩apk文件夹和dex2jar文件夹
  • 创建一个新文件夹
  • 将所有apk和dex2jar文件合并到新文件夹中
  • 打开命令提示符,并将目录更改为新文件夹名称
  • 在命令提示符中,输入d2j-dex2jar classes.dex,按Enter键
  • ....这将在我的新文件夹中创建一个名为classes-dex2jar.jar的新文件

1
我遇到了同样的问题并解决了它,你从GitHub下载的文件实际上没有编译,所以你需要先编译它,而不是编译,你可以从 https://sourceforge.net/projects/dex2jar/files/dex2jar-2.0.zip/download 下载这个zip文件,并按照你在问题中参考的答案进行相同的过程,你将得到一个jar文件作为输出。这个文件已经为你编译了所有的资源,所以你不需要手动完成这项工作!

0

对我来说问题出在路径上,正确的路径是 C:\Users\用户名\Desktop\文件夹名\dex2jar>d2j-dex2jar classes.dex


0

我通过首先下载dex2jar-0.0.9.1 jar文件而不是最新版本来解决了这个问题。然后我使用以下命令d2j-dex2jar.bat classes.dex,并确保您在dex2jar-0.0.9.15目录中打开命令窗口。打开该目录的快捷方式是打开目录,然后在目录窗口内的任何位置按shift和右键。然后转到此处打开命令窗口。


0

1) 从link下载dex2jar并在您的工作目录中提取。
2) 在提取的文件夹中打开命令提示符,输入d2j-dex2jar ..\classes.dex。

您将在当前文件夹中获得classes-dex2jar.jar


0

即使在所有这些答案之后,如果还有人遇到问题,请转到文件夹

dex2jar-0.0.9.15\dex-tools\src\main\bin

这里有两个文件,dex2jar.bat/shd2j-dex2jar.bat/sh都在那里。

移动你的classes.dex文件并使用其中任意一个命令。


0

我已经将apk和dex提取到不同的文件夹中。将提取的文件复制到同一个文件夹中并运行 dex2jar classex.dex 它可以正常工作。


你能否再详细解释一下吗?我也遇到了同样的问题... - Aneez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接