如何将kotlin源文件转换为java源文件

bzzcjhmw  于 2021-07-06  发布在  Java
关注(0)|答案(8)|浏览(351)

我有一个kotlin源文件,但我想把它翻译成java。
如何将kotlin转换为java源代码?

z2acfund

z2acfund1#

您可以将kotlin编译成字节码,然后使用java反汇编程序。
反编译可以在intellij idea内部完成,也可以使用fernflowerhttps://github.com/fesh0r/fernflower (谢谢@jire)
几个月前我检查过没有自动工具(也没有一个afaik的计划)

q1qsirdb

q1qsirdb2#

在android studio中打开kotlin文件
转到工具->kotlin->kotlin字节码
在kotlin文件旁边打开的新窗口中,单击反编译按钮。它将创建相当于kotlin文件的java。

fcg9iug3

fcg9iug33#

我将kotlin编译成字节码,然后反编译成java。我用kotlin编译器编译,用cfr反编译。
我的项目在这里。
这使我能够编译:

package functionsiiiandiiilambdas.functions.p01tailiiirecursive

tailrec fun findFixPoint(x: Double = 1.0): Double =
        if (x == Math.cos(x)) x else findFixPoint(Math.cos(x))

对此:

package functionsiiiandiiilambdas.functions.p01tailiiirecursive;

public final class ExampleKt {
  public static final double findFixPoint(double x) {
    while (x != Math.cos(x)) {
      x = Math.cos(x);
    }
    return x;
  }

  public static /* bridge */ /* synthetic */ double findFixPoint$default(
      double d, int n, Object object) {
    if ((n & 1) != 0) {
      d = 1.0;
    }
    return ExampleKt.findFixPoint(d);
  }
}
vd2z7a6w

vd2z7a6w4#

您可以进入“工具”>“kotlin”>“显示kotlin字节码”


0md85ypi

0md85ypi5#

java和kotlin在java虚拟机(jvm)上运行。
将kotlin文件转换为java文件需要两个步骤,即将kotlin代码编译成jvm字节码,然后将字节码反编译成java代码。
将kotlin源文件转换为java源文件的步骤:
在android工作室中打开您的kotlin项目。
然后导航到“工具”->“kotlin”->“显示kotlin字节码”。

你将得到你的kotin文件的字节码。
现在单击反编译按钮从字节码中获取java代码

n3h0vuf2

n3h0vuf26#

正如@louis cad提到的,“kotlin源代码->java的字节码->java源代码”是目前为止唯一的解决方案。
但是我想提一下我更喜欢的方式:使用jadx反编译器for android。
它允许查看为闭包生成的代码,对我来说,生成的代码比intellij idea反编译器生成的代码更“干净”。
通常,当我需要查看任何kotlin类的java源代码时,我会:
生成apk: ./gradlew assembleDebug 使用jadx gui打开apk: jadx-gui ./app/build/outputs/apk/debug/app-debug.apk 在这个gui中,ide的基本功能起作用:类搜索,点击去声明。等。
此外,所有源代码都可以保存,然后使用intellij idea等其他工具查看。

yi0zb3m4

yi0zb3m47#

转换 Kotlin 源文件到 Java 您需要的源文件(在android studio中时):
在mac上按cmd-shift-a,在windows计算机上按ctrl-shift-a。
键入要查找的操作: Kotlin Bytecode 然后选择 Show Kotlin Bytecode 从菜单。

Decompile 顶部的按钮 Kotlin Bytecode 面板。

现在您可以在相邻的选项卡中获得反编译的java文件和kotlin文件:

cmssoen2

cmssoen28#

正如@vadzim所说,在intellij或android studio中,您只需执行以下操作即可从kotlin获得java代码: Menu > Tools > Kotlin > Show Kotlin Bytecode 点击 Decompile 按钮
复制java代码
更新:
使用最新版本(1.2+)的kotlin插件,您还可以直接 Menu > Tools > Kotlin -> Decompile Kotlin to Java .

相关问题