Programming

kotlin 소스 파일을 Java 소스 파일로 변환하는 방법

procodes 2020. 3. 4. 07:51
반응형

kotlin 소스 파일을 Java 소스 파일로 변환하는 방법


Kotlin 소스 파일이 있지만 Java로 변환하고 싶습니다.

Kotlin을 Java 소스로 변환하려면 어떻게해야합니까?


@Vadzim이 말했듯이 IntelliJ 또는 Android Studio에서 kotlin에서 Java 코드를 얻으려면 다음을 수행해야합니다.

  1. Menu > Tools > Kotlin > Show Kotlin Bytecode
  2. Decompile버튼을 클릭하십시오
  3. 자바 코드 복사

최신 정보:

Kotlin 플러그인의 최신 버전 (1.2 이상)을 사용하면 직접 할 수도 있습니다 Menu > Tools > Kotlin -> Decompile Kotlin to Java.


Kotlin을 바이트 코드로 컴파일 한 다음 Java 디스어셈블러를 사용할 수 있습니다.

디 컴파일은 IntelliJ Idea 내에서 또는 FernFlower https://github.com/fesh0r/fernflower (감사합니다 @Jire)를 사용하여 수행 할 수 있습니다

몇 달 전에 확인한 자동화 도구가 없었습니다 (AFAIK 한 개에 대한 계획도 없음).


도구> Kotlin> kotlin 바이트 코드 표시 로 이동할 수 있습니다

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


I compile Kotlin to byte code and then de-compile that to Java. I compile with the Kotlin compiler and de-compile with cfr.

My project is here.

This allows me to compile this:

package functionsiiiandiiilambdas.functions.p01tailiiirecursive

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

To this:

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);
  }
}

To convert a Kotlin source file to a Java source file you need to (when you in Android Studio):

  1. Press Cmd-Shift-A on a Mac, or press Ctrl-Shift-A on a Windows machine. 여기에 이미지 설명을 입력하십시오

  2. Type the action you're looking for: Kotlin Bytecode and choose Show Kotlin Bytecode from menu.

여기에 이미지 설명을 입력하십시오

  1. Press Decompile button on the top of Kotlin Bytecode panel.

여기에 이미지 설명을 입력하십시오

  1. Now you get a Decompiled Java file along with Kotlin file in a adjacent tab:

여기에 이미지 설명을 입력하십시오

Hope this helps.


As @louis-cad mentioned "Kotlin source -> Java's byte code -> Java source" is the only solution so far.

But I would like to mention the way, which I prefer: using Jadx decompiler for Android.

It allows to see the generates code for closures and, as for me, resulting code is "cleaner" then one from IntelliJ IDEA decompiler.

Normally when I need to see Java source code of any Kotlin class I do:

  • Generate apk: ./gradlew assembleDebug
  • Open apk using Jadx GUI: jadx-gui ./app/build/outputs/apk/debug/app-debug.apk

In this GUI basic IDE functionality works: class search, click to go declaration. etc.

Also all the source code could be saved and then viewed using other tools like IntelliJ IDEA.


  1. open kotlin file in android studio
  2. go to tools -> kotlin ->kotlin bytecode
  3. kotlin 파일 옆에있는 새 창에서 디 컴파일 단추를 클릭하십시오. 그것은 kotlin 파일과 동등한 Java를 생성합니다.

참고 URL : https://stackoverflow.com/questions/34957430/how-to-convert-a-kotlin-source-file-to-a-java-source-file



반응형