[java] 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 바이트 코드 표시 로 이동할 수 있습니다

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

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

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


답변

Kotlin소스 파일을 소스 파일 로 변환하려면 Java(Android Studio의 경우) :

  1. 보도 CmdShiftA맥, 누르거나 CtrlShiftAWindows 시스템에.

  2. 찾고있는 동작을 입력하고 메뉴에서 Kotlin Bytecode선택하십시오 Show Kotlin Bytecode.

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

  1. 패널 Decompile상단의 버튼을 누릅니다 Kotlin Bytecode.

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

  1. 이제 인접한 탭에서 Kotlin 파일과 함께 디 컴파일 된 Java 파일을 얻습니다.

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


답변

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


답변

@ louis-cad가 언급했듯이 “Kotlin source-> Java의 바이트 코드-> Java source”는 지금까지 유일한 솔루션입니다.

그러나 Android 용 Jadx 디 컴파일러를 사용하는 방법을 언급하고 싶습니다 .

그것은 클로저를 위한 코드를 생성하는 것을 볼 수있게 해주 며 , 결과적으로 코드는 IntelliJ IDEA 디 컴파일러의 코드보다 “깨끗하다”.

일반적으로 Kotlin 클래스의 Java 소스 코드를 볼 필요가있을 때 :

  • APK 생성 : ./gradlew assembleDebug
  • Jadx GUI를 사용하여 APK 열기 : jadx-gui ./app/build/outputs/apk/debug/app-debug.apk

이 GUI에서 기본 IDE 기능은 다음과 같습니다. 클래스 검색, 클릭하여 이동 선언. 기타

또한 모든 소스 코드를 저장 한 다음 IntelliJ IDEA와 같은 다른 도구를 사용하여 볼 수 있습니다.


답변

  1. 안드로이드 스튜디오에서 kotlin 파일 열기
  2. 도구로 이동-> kotlin-> kotlin 바이트 코드
  3. kotlin 파일 옆에있는 새 창에서 디 컴파일 단추를 클릭하십시오. 그것은 kotlin 파일과 동등한 Java를 생성합니다.