Jak przekonwertować plik źródłowy Kotlin na plik źródłowy Java
Mam plik źródłowy Kotlina, ale chcę go przetłumaczyć na Javę.
Jak mogę przekonwertować Kotlin na Java source?
8 answers
Jak powiedział @Wadzim, w IntelliJ lub Android Studio, wystarczy wykonać następujące czynności, aby uzyskać kod Javy z Kotlina:
Menu > Tools > Kotlin > Show Kotlin Bytecode
- Kliknij na
Decompile
Przycisk - skopiuj kod Javy
Update:
Z najnowszą wersją (1.2+) wtyczki Kotlin możesz również wykonać bezpośrednio Menu > Tools > Kotlin -> Decompile Kotlin to Java
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-06 09:17:26
Możesz skompilować Kotlina do kodu bajtowego, a następnie użyć Java disassemblera.
Dekompilacja może być wykonana wewnątrz IntelliJ Idea, lub przy użyciu FernFlower https://github.com/fesh0r/fernflower (dzięki @Jire)
Nie było zautomatyzowanego narzędzia, jak sprawdzałem kilka miesięcy temu (i żadnych planów na jeden AFAIK)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-05 14:27:05
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-25 06:52:59
Aby przekonwertować plik źródłowy
Kotlin
Na plik źródłowyJava
, musisz (gdy jesteś w Android Studio):
Naciśnij Cmd-Shift-a na Macu, lub naciśnij Ctrl-Shift-a na komputerze z systemem Windows.
Wpisz szukaną akcję:
Kotlin Bytecode
i wybierzShow Kotlin Bytecode
z menu.
- Naciśnij
Decompile
Przycisk na górzeKotlin Bytecode
panel.
- teraz otrzymasz Dekompilowany plik Javy wraz z plikiem Kotlin w sąsiedniej karcie:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-23 05:35:44
Kompiluję Kotlina do kodu bajtowego, a następnie dekompiluję go do Javy. Kompiluję za pomocą kompilatora Kotlin i dekompiluję za pomocą cfr.
Mój projekt jest TUTAJ .
To pozwala mi skompilować to:
package functionsiiiandiiilambdas.functions.p01tailiiirecursive
tailrec fun findFixPoint(x: Double = 1.0): Double =
if (x == Math.cos(x)) x else findFixPoint(Math.cos(x))
Do tego:
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);
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-21 08:16:47
Jak @louis-cad wspomniał "Kotlin source - > Java' s byte code - > Java source " jest jak dotąd jedynym rozwiązaniem.
Ale chciałbym wspomnieć sposób, który preferuję: za pomocą Jadx decompiler dla Androida .
Pozwala zobaczyć kod generowany dla zamknięć i, jak dla mnie, wynikowy kod jest "czystszy", a następnie z IntelliJ IDEA decompiler.
Normalnie, gdy muszę zobaczyć kod źródłowy Javy dowolnej klasy Kotlina, którą robię:
- Wygeneruj apk:
./gradlew assembleDebug
- Otwórz apk używając JADX GUI:
jadx-gui ./app/build/outputs/apk/debug/app-debug.apk
W tym GUI działa podstawowa funkcjonalność IDE: wyszukiwanie klas, Kliknij aby przejść do deklaracji. itd.
Również cały kod źródłowy może być zapisany, a następnie przeglądany za pomocą innych narzędzi, takich jak IntelliJ IDEA.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-11 13:08:50
- Otwórz plik kotlin w android studio
- Przejdź do narzędzia - > kotlin-> Kotlin bytecode
- w nowym oknie , które otworzy się obok Twojego pliku kotlin, kliknij przycisk dekompiluj . utworzy odpowiednik java Twojego pliku kotlin .
Java i Kotlin działają na maszynie wirtualnej Java (JVM).
Konwersja pliku Kotlin do pliku Java obejmuje dwa kroki, tj. kompilację kodu Kotlin do kodu bajtowego JVM, a następnie dekompilację kodu bajtowego do kodu Java.
Kroki, aby przekonwertować plik źródłowy Kotlin na plik źródłowy Java:
- otwórz swój projekt Kotlin w Android Studio.
- Następnie przejdź do Narzędzia - > Kotlin - > Pokaż kod bajtowy Kotlina.
- będziesz Pobierz kod bajtowy swojego pliku Kotin.
- Teraz kliknij przycisk Dekompiluj, aby pobrać kod Javy z kodu bajtowego
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-04 06:07:00