JVM없이 Java에서 독립형 (또는 라이브러리) 기계어 코드로 컴파일 할 수있는 방법이 있습니까?
JVM없이 Java에서 독립형 (또는 라이브러리) 기계어 코드로 컴파일 할 수있는 방법이 있습니까?
답변:
GCC의 일부인 GCJ라는 도구가 있었지만 제거되었습니다 . 이제 GCC 사이트의 모든 링크는 GCC가 아닌 해당 링크로 리디렉션됩니다.
NB : 댓글은 모두 GCJ를 사용하여 Java를 네이티브 코드로 컴파일 할 수 있다는 원래 답변을 참조했습니다.
예!
오라클은 네이티브 이미지를 지원하는 GraalVm을 개발하고 있습니다. 여기에서 확인하십시오 : https://www.graalvm.org/
네이티브 이미지 GraalVM SDK의 네이티브 이미지 기능은 Java 애플리케이션의 시작 시간을 개선하고 더 작은 공간을 제공합니다. 사실상 이는 JVM (모든 플랫폼에서)에서 실행되는 바이트 코드를 특정 OS / 플랫폼 용 네이티브 코드로 변환하는 것입니다. 우수한 성능을 달성하기 위해 적극적인 AOT (Ahead-of-Time) 최적화를 사용하고 있습니다.
더보기:
Windows
장난감 프로그램에서만 작동하지만 더 고급 및 / 또는 사용할 때 GUI
아직 거기에 있지 않다는 것입니다. Twitter
아마 Linux
전혀 사용 하지 GUI
않지만 아마도 커뮤니티 버전 만 시도하는 동안 상용 버전도 사용할 것입니다. 일부 사용 사례에서는 작동 할 수 있지만 Java Windows
데스크톱 응용 프로그램은 여전히 프로젝트를 약간 실망스럽게 만드는 응용 프로그램 중 하나가 아닙니다. Excelsior JET
이 작업을 안정적으로 수행 할 수 있지만 현재 중단되었습니다.
Excelsior JET 는 상용 Java to native 코드 컴파일러입니다. 그러나 2019 년 5 월에 중단되었습니다.
예, JVM의 JIT가 정확히 수행합니다.
실제로 코드가 런타임에 사용되는 방식에 따라 특정 플랫폼에 최적화 된 코드를 생성 할 수 있으므로 코드를 미리 컴파일하는 것보다 더 빠른 코드를 생성 할 수 있습니다.
JVM은 바이트 코드를 동적으로로드하고 실행할 수 있으므로 매우 높은 비율이 원시 코드로 컴파일 되더라도 항상 관련됩니다.
또 다른 가능성은 RoboVM
. 그러나 만에 작동하는 것 같다 Linux
, iOS
하고 Mac OS X
.
현재로서는 프로젝트가 죽었다고 주장하는 일부 온라인 게시물과는 달리 프로젝트가 여전히 살아있는 것처럼 보입니다 .