如何在不编译的情况下将 Java 代码转换为 Jasmin?

How can I convert Java code to Jasmin without compiling?

我需要将 class 的一些片段转换成 Jasmin(或者如果可能的话,Smali)并将新代码与反汇编代码混合在一起。
我想知道的是:这可能吗?如果是,怎么做?

(我有 java 个文件的 diff 补丁,但没有 Jar 文件的源代码,所以我决定这样做)

这取决于。 1)如果你说的是android代码(calsses.dex),你可以使用apktool对其进行反汇编,然后inject/edit反汇编代码。最后,您可以重新组装该代码(仍然使用 apktool,当然您的新代码不应包含语法错误)。您还需要签署新的 apk 才能 运行 在您的 android 设备上。 2) 如果你只是想从一些 jar 中获取源代码,你可以使用像 JDGUI 这样的反编译器反编译它们并获取源代码(在 JAVA lang 中)。请注意,您的 jar 文件可能会被混淆,因此生成的源代码可能会混淆或无法正常工作。

我想说的是,如果您有一个带有您想要修改的代码的 apk,最好的办法是使用 apktool 反汇编它。否则,如果您尝试这样做只是为了从 jars 中恢复源代码(也许您丢失了原始源代码??),您可以尝试使用反编译器。

希望这对您有所帮助。