Czy istnieje sposób na skompilowanie kodu maszynowego Java do samodzielnego (lub bibliotecznego) kodu maszynowego bez konieczności posiadania maszyny JVM?
java
compilation
native-code
barroco
źródło
źródło
Odpowiedzi:
Kiedyś istniało narzędzie o nazwie GCJ, które było częścią GCC, ale zostało usunięte . Teraz wszystkie linki w witrynie GCC przekierowują do ich odpowiedników innych niż GCJ.
Uwaga: wszystkie komentarze odnosiły się do mojej oryginalnej odpowiedzi, mówiącej, że można skompilować Javę do kodu natywnego za pomocą GCJ.
źródło
Tak!
Oracle pracuje nad GraalVm, który obsługuje obrazy natywne. Sprawdź tutaj: https://www.graalvm.org/
Zobacz więcej:
Podsumowanie
https://www.graalvm.org/docs/getting-started/#native-images
Dema: obrazy natywne dla szybszego uruchamiania
https://www.graalvm.org/docs/examples/native-list-dir/
Szczegóły: „Kompilacja z wyprzedzeniem”
https://www.graalvm.org/docs/reference-manual/aot-compilation/
źródło
Windows
tylko programy zabawkowe, ale nic bardziej zaawansowanego i / lub gdy używam,GUI
nie jest jeszcze dostępne.Twitter
prawdopodobnie używaLinux
bez żadnego,GUI
ale prawdopodobnie używają również wersji komercyjnej, podczas gdy ja wypróbowałem tylko wersję społecznościową. Może to działać w niektórych przypadkach, ale aplikacjeWindows
komputerowe Java nie są jedną z nich, co nadal sprawia, że projekt jest nieco rozczarowujący.Excelsior JET
może to zrobić niezawodnie, ale teraz zostało przerwane.Excelsior JET to komercyjny kompilator Java do natywnego kodu. Jednak w maju 2019 został przerwany.
źródło
Tak, JIT w JVM robi dokładnie to za Ciebie.
W rzeczywistości może generować kod szybszy niż kompilowanie kodu z wyprzedzeniem, ponieważ może generować kod zoptymalizowany dla określonej platformy w oparciu o sposób wykorzystania kodu w czasie wykonywania.
JVM jest zawsze zaangażowana, nawet jeśli bardzo wysoki procent jest kompilowany do kodu natywnego, ponieważ można dynamicznie ładować i uruchamiać kod bajtowy.
źródło
Inną możliwością byłoby
RoboVM
. Jednak wydaje się, tylko do pracyLinux
,iOS
aMac OS X
.Na dzień dzisiejszy projekt nadal wydaje się nieco żywy, w przeciwieństwie do niektórych postów internetowych twierdzących, że projekt jest martwy .
źródło