Kotlin 소스 파일이 있지만 Java로 변환하고 싶습니다.
Kotlin을 Java 소스로 변환하려면 어떻게해야합니까?
답변
@Vadzim이 말했듯이 IntelliJ 또는 Android Studio에서 kotlin에서 Java 코드를 얻으려면 다음을 수행해야합니다.
Menu > Tools > Kotlin > Show Kotlin Bytecode
Decompile
버튼을 클릭하십시오- 자바 코드 복사
최신 정보:
Kotlin 플러그인의 최신 버전 (1.2 이상)을 사용하면 직접 할 수도 있습니다 Menu > Tools > Kotlin -> Decompile Kotlin to Java
.
답변
Kotlin을 바이트 코드로 컴파일 한 다음 Java 디스어셈블러를 사용할 수 있습니다.
디 컴파일은 IntelliJ Idea 내에서 또는 FernFlower https://github.com/fesh0r/fernflower (감사합니다 @Jire)를 사용하여 수행 할 수 있습니다
몇 달 전에 확인한 자동화 도구가 없었습니다 (AFAIK 한 개에 대한 계획도 없음)
답변
답변
Kotlin
소스 파일을 소스 파일 로 변환하려면Java
(Android Studio의 경우) :
-
보도 Cmd– Shift– A맥, 누르거나 Ctrl– Shift– AWindows 시스템에.
-
찾고있는 동작을 입력하고 메뉴에서
Kotlin Bytecode
선택하십시오Show Kotlin Bytecode
.
- 패널
Decompile
상단의 버튼을 누릅니다Kotlin Bytecode
.
- 이제 인접한 탭에서 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와 같은 다른 도구를 사용하여 볼 수 있습니다.
답변
- 안드로이드 스튜디오에서 kotlin 파일 열기
- 도구로 이동-> kotlin-> kotlin 바이트 코드
- kotlin 파일 옆에있는 새 창에서 디 컴파일 단추를 클릭하십시오. 그것은 kotlin 파일과 동등한 Java를 생성합니다.