I have a Kotlin source file, but I want to translate it to Java.
我有一个Kotlin源文件,但是我想把它转换成Java。
How can I convert Kotlin to Java source?
如何将Kotlin转换为Java源代码?
5 个解决方案
#1
165
As @Vadzim said, in IntelliJ or Android Studio, you just have to do the following to get java code from kotlin:
正如@Vadzim所说,在IntelliJ或Android Studio中,你只需要做以下事情就可以从kotlin获得java代码:
Menu > Tools > Kotlin > Show Kotlin Bytecode
- 菜单>工具> Kotlin >显示Kotlin字节码
- Click on the
Decompile
button - 单击分解堆按钮
- Copy the java code
- 复制的java代码
Update:
更新:
As of latest android studio 3.1.2
最新的android studio 3.1.2
you can directly do go to menu -> tools -> kotlin -> decompile kotlin to java.
您可以直接进入菜单->工具-> kotlin ->反编译kotlin到java。
#2
29
You can compile Kotlin to bytecode, then use a Java disassembler.
您可以将Kotlin编译为字节码,然后使用Java反汇编器。
The decompiling may be done inside InteliJ Idea, or using FernFlower https://github.com/fesh0r/fernflower (thanks @Jire)
反编译可以在InteliJ Idea中完成,或者使用FernFlower https://github.com/fesh0r/fernflower(感谢@Jire)
There was no automated tool as I checked a couple months ago (and no plans for one AFAIK)
几个月前我检查的时候没有自动的工具(而且没有一个AFAIK的计划)
#3
4
In Android Studio, you just have to do the following to get java bytecode code:
在Android Studio中,只需执行以下操作即可获得java字节码:
-
Display bytecode:
Tools
->Kotlin
->Show Kotlin Bytecode
显示字节码:工具-> Kotlin ->显示Kotlin字节码
-
Or: cmd + shift + A (Mac) / ctrl + shift + A (Windows) and type
Kotlin Bytecode
或者:cmd + shift + A (Mac) / ctrl + shift + A (Windows),输入Kotlin字节码
Note: Decompile button is available only if you have installed and enabled plugin “Java Bytecode Decompiler”
注意:只有安装并启用了“Java字节码反编译器”插件时,才可以使用反编译按钮。
java bytecode code:
java字节码代码:
#4
2
As @louis-cad mentioned "Kotlin source -> Java's byte code -> Java source" is the only solution so far.
正如@louis-cad提到的“Kotlin源代码—> Java的字节码—> Java源代码”是目前唯一的解决方案。
But I would like to mention the way, which I prefer: using Jadx decompiler for Android.
但是我想提一下我喜欢的方法:在Android中使用Jadx反编译器。
It allows to see the generates code for closures and, as for me, resulting code is "cleaner" then one from IntelliJ IDEA decompiler.
它允许查看为闭包生成的代码,对于我来说,生成的代码比IntelliJ IDEA反编译器中的代码“更干净”。
Normally when I need to see Java source code of any Kotlin class I do:
通常,当我需要查看任何Kotlin类的Java源代码时,我都会这样做:
- Generate apk:
./gradlew assembleDebug
- 生成的apk:。/ gradlew assembleDebug
- Open apk using Jadx GUI:
jadx-gui ./app/build/outputs/apk/debug/app-debug.apk
- 使用Jadx GUI打开apk: Jadx - GUI ./app/构建/输出/apk/debug/app-debug.apk
In this GUI basic IDE functionality works: class search, click to go declaration. etc.
在这个GUI基本的IDE功能工作:类搜索,点击进入声明。等。
Also all the source code could be saved and then viewed using other tools like IntelliJ IDEA.
所有的源代码都可以保存,然后使用IntelliJ IDEA这样的工具来查看。
#5
0
- open kotlin file in android studio
- 在android studio中打开kotlin文件
- go to tools -> kotlin ->kotlin bytecode
- 转到工具->kotlin ->kotlin字节码
- in the new window that open beside your kotlin file , click the decompile button . it will create java equivalent of your kotlin file .
- 在kotlin文件旁边打开的新窗口中,单击分解堆按钮。它将创建java等效的kotlin文件。
#1
165
As @Vadzim said, in IntelliJ or Android Studio, you just have to do the following to get java code from kotlin:
正如@Vadzim所说,在IntelliJ或Android Studio中,你只需要做以下事情就可以从kotlin获得java代码:
Menu > Tools > Kotlin > Show Kotlin Bytecode
- 菜单>工具> Kotlin >显示Kotlin字节码
- Click on the
Decompile
button - 单击分解堆按钮
- Copy the java code
- 复制的java代码
Update:
更新:
As of latest android studio 3.1.2
最新的android studio 3.1.2
you can directly do go to menu -> tools -> kotlin -> decompile kotlin to java.
您可以直接进入菜单->工具-> kotlin ->反编译kotlin到java。
#2
29
You can compile Kotlin to bytecode, then use a Java disassembler.
您可以将Kotlin编译为字节码,然后使用Java反汇编器。
The decompiling may be done inside InteliJ Idea, or using FernFlower https://github.com/fesh0r/fernflower (thanks @Jire)
反编译可以在InteliJ Idea中完成,或者使用FernFlower https://github.com/fesh0r/fernflower(感谢@Jire)
There was no automated tool as I checked a couple months ago (and no plans for one AFAIK)
几个月前我检查的时候没有自动的工具(而且没有一个AFAIK的计划)
#3
4
In Android Studio, you just have to do the following to get java bytecode code:
在Android Studio中,只需执行以下操作即可获得java字节码:
-
Display bytecode:
Tools
->Kotlin
->Show Kotlin Bytecode
显示字节码:工具-> Kotlin ->显示Kotlin字节码
-
Or: cmd + shift + A (Mac) / ctrl + shift + A (Windows) and type
Kotlin Bytecode
或者:cmd + shift + A (Mac) / ctrl + shift + A (Windows),输入Kotlin字节码
Note: Decompile button is available only if you have installed and enabled plugin “Java Bytecode Decompiler”
注意:只有安装并启用了“Java字节码反编译器”插件时,才可以使用反编译按钮。
java bytecode code:
java字节码代码:
#4
2
As @louis-cad mentioned "Kotlin source -> Java's byte code -> Java source" is the only solution so far.
正如@louis-cad提到的“Kotlin源代码—> Java的字节码—> Java源代码”是目前唯一的解决方案。
But I would like to mention the way, which I prefer: using Jadx decompiler for Android.
但是我想提一下我喜欢的方法:在Android中使用Jadx反编译器。
It allows to see the generates code for closures and, as for me, resulting code is "cleaner" then one from IntelliJ IDEA decompiler.
它允许查看为闭包生成的代码,对于我来说,生成的代码比IntelliJ IDEA反编译器中的代码“更干净”。
Normally when I need to see Java source code of any Kotlin class I do:
通常,当我需要查看任何Kotlin类的Java源代码时,我都会这样做:
- Generate apk:
./gradlew assembleDebug
- 生成的apk:。/ gradlew assembleDebug
- Open apk using Jadx GUI:
jadx-gui ./app/build/outputs/apk/debug/app-debug.apk
- 使用Jadx GUI打开apk: Jadx - GUI ./app/构建/输出/apk/debug/app-debug.apk
In this GUI basic IDE functionality works: class search, click to go declaration. etc.
在这个GUI基本的IDE功能工作:类搜索,点击进入声明。等。
Also all the source code could be saved and then viewed using other tools like IntelliJ IDEA.
所有的源代码都可以保存,然后使用IntelliJ IDEA这样的工具来查看。
#5
0
- open kotlin file in android studio
- 在android studio中打开kotlin文件
- go to tools -> kotlin ->kotlin bytecode
- 转到工具->kotlin ->kotlin字节码
- in the new window that open beside your kotlin file , click the decompile button . it will create java equivalent of your kotlin file .
- 在kotlin文件旁边打开的新窗口中,单击分解堆按钮。它将创建java等效的kotlin文件。