[java] Java를 네이티브 코드로 컴파일 할 수 있습니까?

JVM없이 Java에서 독립형 (또는 라이브러리) 기계어 코드로 컴파일 할 수있는 방법이 있습니까?



답변

GCC의 일부인 GCJ라는 도구가 있었지만 제거되었습니다 . 이제 GCC 사이트의 모든 링크는 GCC가 아닌 해당 링크로 리디렉션됩니다.

NB : 댓글은 모두 GCJ를 사용하여 Java를 네이티브 코드로 컴파일 할 수 있다는 원래 답변을 참조했습니다.


답변

예!

오라클은 네이티브 이미지를 지원하는 GraalVm을 개발하고 있습니다. 여기에서 확인하십시오 : https://www.graalvm.org/

네이티브 이미지
GraalVM SDK의 네이티브 이미지 기능은 Java 애플리케이션의 시작 시간을 개선하고 더 작은 공간을 제공합니다. 사실상 이는 JVM (모든 플랫폼에서)에서 실행되는 바이트 코드를 특정 OS / 플랫폼 용 네이티브 코드로 변환하는 것입니다. 우수한 성능을 달성하기 위해 적극적인 AOT (Ahead-of-Time) 최적화를 사용하고 있습니다.

더보기:


답변

Excelsior JET 는 상용 Java to native 코드 컴파일러입니다. 그러나 2019 년 5 월에 중단되었습니다.


답변

예, JVM의 JIT가 정확히 수행합니다.

실제로 코드가 런타임에 사용되는 방식에 따라 특정 플랫폼에 최적화 된 코드를 생성 할 수 있으므로 코드를 미리 컴파일하는 것보다 더 빠른 코드를 생성 할 수 있습니다.

JVM은 바이트 코드를 동적으로로드하고 실행할 수 있으므로 매우 높은 비율이 원시 코드로 컴파일 되더라도 항상 관련됩니다.


답변

또 다른 가능성은 RoboVM. 그러나 만에 작동하는 것 같다 Linux, iOS하고 Mac OS X.

현재로서는 프로젝트가 죽었다고 주장하는 일부 온라인 게시물과는 달리 프로젝트가 여전히 살아있는 것처럼 보입니다 .


답변