OpenJDK는 Pi에서 성공적으로 컴파일되고 실행되지만 찾은 유일한 버전은 JIT가없는 것입니다. Oracle은 ARMv6이 아닌 다른 버전의 ARM에 이러한 JDK를 제공합니다. 그와 같은 JDK 버전을 설치하고 실행하는 방법이 있습니까?
OpenJDK는 Pi에서 성공적으로 컴파일되고 실행되지만 찾은 유일한 버전은 JIT가없는 것입니다. Oracle은 ARMv6이 아닌 다른 버전의 ARM에 이러한 JDK를 제공합니다. 그와 같은 JDK 버전을 설치하고 실행하는 방법이 있습니까?
답변:
오라클은 이제 Java 7u6부터 JIT가 포함 된 JDK를 출시하여 AWT / Swing을 완벽하게 지원하는 Pi에서 작동합니다. 또한 (카카오는 부분적으로 만 지원합니다.) JVMTI를 지원 보도 자료 여기 .
Greenfoot 과 함께 작동 하고 일반 (JIT가 아닌) OpenJDK 빌드와 비교할 때 엄청난 속도를 제공합니다.
작성 당시에는 하드 부동 소수점을 지원하지 않으므로 하드 플로트 만 사용하는 Raspbian과 같은 배포판에서는 작동하지 않습니다. 그러나 이것은 향후 릴리스를 위해 계획되어 있습니다.
업데이트 : Darren이 지적했듯이 이제 ARM 용 JDK8 프리뷰 릴리스의 형태로 하드 플로트 버전이 출시되었으므로 여기에서 찾을 수 있습니다 .
업데이트 2 : JDK7에서 하드 플로트가 지원됩니다.
icedtea-6-JRE-카카오 패키지는 JIT 컴파일러를 포함하고, 보도 RasPi에서 작동합니다 .
나는 그것을 직접 시도하지 않았다.
오라클은 이제 Java JDK8 for ARM의 개발자 프리뷰를 발표했는데, 여기에는 Pi의 하드 플로트 Raspbian 지원이 포함됩니다. 작동하지만 특정 부동 소수점 집중 계산의 경우 OpenJDK보다 약 20 배 빠릅니다. http://jdk8.java.net/fxarmpreview/
Rasbian에서는 "code-copying-JIT"가 포함 된 JamVM을 사용할 수 있습니다
apt-get install icedtea-7-jre-jamvm
JamVM은 현재 Rasbian의 JIT를 포함하는 가장 빠르고 안정적인 JVM입니다.
조류는 또한 JIT를 포함하는 Rasbian에서도 지원됩니다. 수동으로 빌드해야합니다. http://labb.zafena.se/?p=630
나는 Abian이 Debian SID 소스에서 빌드되었을 때 Raspbian에 나타날 것으로 기대합니다. 조류는 현재 jvm-7-avian-jre
패키지 내부의 데비안 SID 실험에 존재 합니다.
Avian 및 JamVM은 OpenJDK-7 클래스와 함께 작동하므로 javac 및 java와 같은 모든 Java 실행 프로그램의 속도를 높이는 데 사용할 수 있습니다. 파일 /etc/java-7-openjdk/jvm-armhf.cfg
은 Rasbian의 openjdk 7에서 기본적으로 사용할 JVM을 결정합니다.
또한 자바 런처에게 사용할 jvm을 개별적으로 알려줄 수 있습니다.
java -jamvm
javac -J-jamvm
XJ 지원 및 Swing / AWT 작동 설정을 얻기 위해 JIT가 포함 된 Java JDK8의 JVM과 OpenJDK 7을 결합 할 수 있습니다.
"클래스 경로"예외가있는 JNI 인터페이스는 JVM과 런타임 환경 클래스를 명확하게 구분합니다. JavaFX 8 미리보기에서 클라이언트 핫스팟 (jre / lib / arm / client / libjvm.so)을 Rasbian 컴파일 된 OpenJDK 7 런타임 환경 클래스 및 Java 실행기와 함께 사용하는 경우 (/ usr / lib / jvm / java-7- openjdk-armhf) 다음과 같은 설정 및 이점을 얻을 수 있습니다
설정:
http://jdk8.java.net/fxarmpreview/index.html 에서 jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz를 다운로드하십시오.
# Install openjdk-7 and the icedtea-web browser plugin
sudo apt-get install openjdk-7-jdk icedtea-7-plugin
# Extract the Oracle Client Hotspot JVM from the JavaFX 8 preview
tar --extract --verbose --file=jdk-8-ea-b36e-linux-arm-hflt-29_nov_2012.tar.gz jdk1.8.0/jre/lib/arm/client
# Place the client hotspot dir containing the libjvm.so inside the OpenJDK 7 jre/lib/arm folder
sudo mv jdk1.8.0/jre/lib/arm/client /usr/lib/jvm/java-7-openjdk-armhf/jre/lib/arm/oracle
# Configure the OpenJDK Runtime to use the Oracle client Hotspot JVM dir
# This sed command places -oracle KNOWN at the first line of jvm-armhf.cfg
sudo sed -i -e "1i\\-oracle KNOWN" /etc/java-7-openjdk/jvm-armhf.cfg
java -version
java version "1.7.0_07" <--- This is the OpenJDK 7 Update version
OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-1+rpi1) <--- This is the OpenJDK 7 Runtime version
Java HotSpot(TM) Client VM (build 25.0-b04, mixed mode) <--- This is the Oracle Client Hotspot JVM version