programing

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

prostudy 2022. 8. 25. 21:46
반응형

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

Kotlin 소스 파일을 가지고 있습니다만, Java로 번역하고 싶습니다.

Kotlin을 Java 소스로 변환하려면 어떻게 해야 하나요?

@Vadzim이 말했듯이 IntelliJ 또는 Android Studio에서는 Kotlin에서 Java 코드를 가져오려면 다음 작업을 수행해야 합니다.

  1. Menu > Tools > Kotlin > Show Kotlin Bytecode
  2. 을 클릭해 주세요.Decompile가 끼다
  3. Java 코드 복사

업데이트:

버전에서는 Kotlin을 직접 .Menu > Tools > Kotlin -> Decompile Kotlin to Java.

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

디컴파일은 IntelliJ Idea 내에서 수행하거나 FernFlower https://github.com/fesh0r/fernflower을 사용하여 수행할 수 있습니다(고맙습니다 @Jire).

몇 달 전에 확인한 바로는 자동화 툴이 없었습니다(또한 AFIK 1개 계획도 없습니다).

[ Tools ] > [ Kotlin ]> [ Show kotlin bytecode ]으로 이동합니다.

여기에 이미지 설명 입력

여기에 이미지 설명 입력

여기에 이미지 설명 입력

「」를 Kotlin을 「」에 송신한다.JavaAndroid Studio:

  1. Mac에서는 -- 를 ShiftA누르거나 Windows 머신에서는 --ShiftA 를 누릅니다.

  2. 합니다.Kotlin Bytecode 선택합니다.Show Kotlin Bytecode메뉴로부터.

여기에 이미지 설명 입력

  1. 를 누릅니다.DecompileKotlin Bytecodepanelmanel.manel을 합니다.manel.

여기에 이미지 설명 입력

  1. 이제 인접 탭에 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's byte code -> Java source"가 현재 유일한 솔루션입니다.

하지만 제가 선호하는 방법은 안드로이드용 Jadx 디컴파일러입니다.

폐쇄용 생성 코드를 볼 수 있으며, 저는 IntelliJ IDEA 디컴파일러에서 생성된 코드보다 "깨끗한" 코드입니다.

보통 Kotlin 클래스의 Java 소스 코드를 확인해야 하는 경우:

  • :apk 성 generate :./gradlew assembleDebug
  • GUI(Jadx GUI)를 사용하여 .jadx-gui ./app/build/outputs/apk/debug/app-debug.apk

이 GUI 기본 IDE 기능에서는 클래스 검색, 클릭해서 실행 선언이 가능합니다.기타.

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

  1. Android Studio에서 kotlin 파일 열기
  2. 툴 -> kotlin -> slin 바이트 코드로 이동합니다.
  3. 당신의 kotlin 파일 옆에 열리는 새로운 창에서, 디컴파일 버튼을 클릭하세요. 그것은 당신의 kotlin 파일과 동등한 자바를 만들 것입니다.

Java 및 Kotlin은 Java Virtual Machine(JVM)에서 실행됩니다.

Kotlin 파일을 Java 파일로 변환하려면 두 가지 단계가 필요합니다. 즉, Kotlin 코드를 JVM 바이트 코드로 컴파일한 다음 바이트 코드를 Java 코드로 디컴파일합니다.

Kotlin 소스 파일을 Java 소스 파일로 변환하는 단계:

  1. Android Studio에서 Kotlin 프로젝트를 엽니다.
  2. 다음으로 [툴]-> [ Kotlin ]-> [ Kotlin 바이트 코드 표시]로 이동합니다.

여기에 이미지 설명 입력

  1. Kotin 파일의 바이트 코드를 얻을 수 있습니다.
  2. 바이트 코드에서 Java 코드를 가져오려면 디컴파일 버튼을 클릭하십시오.

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

반응형