क्या एक JDK एक JIT संकलक के साथ उपलब्ध है?


24

OpenJDK संकलन और पाई पर सफलतापूर्वक चलता है, लेकिन मैंने जो एकमात्र संस्करण पाया है वह JIT के बिना है। ओरेकल एआरएम के अन्य संस्करणों के लिए ऐसा जेडीके प्रदान करता है, लेकिन एआरएमवी 6 नहीं। क्या इस बीच जेडीके के इस तरह के संस्करण को प्राप्त करने और इस दौरान चलने का कोई तरीका है?


क्या है डिस्ट्रो?
जीव

वर्तमान में डेबियन निचोड़, हालांकि मैं बदलने के बारे में बहुत अधिक नहीं हूं, अगर यह स्थिति में मदद करेगा!
बेरी

क्या आप आधिकारिक रेपो में OpenJDK संस्करण को स्थापित नहीं कर सकते हैं?
जीवों

@ जिविंग्स यूप, यही मैं इस समय उपयोग कर रहा हूँ। लेकिन वह संस्करण जेआईटी के साथ नहीं आता (इसलिए सवाल!)
berry120

क्षमा करें :) मुझे पता नहीं क्यों तब जेआईटी नहीं होता है। एक अजीब निर्णय लगता है, क्या आपने इसके लिए कोई औचित्य पाया है?
Jivings

जवाबों:


15

अब Oracle ने JIT के साथ JDK के साथ एक JDK जारी किया है जो पूर्ण AWT / स्विंग समर्थन के साथ Pi पर काम करता है। यह जेवीएमटीआई का समर्थन भी करता है (काकाओ को केवल आंशिक समर्थन है।) यहां प्रेस विज्ञप्ति जारी करें

मैंने यह सत्यापित किया है कि यह ग्रीनफुट के साथ काम करता है , और एक सादे (गैर-जेआईटी) ओपनजेडके बिल्ड की तुलना में बहुत बड़ा स्पीडअप प्रदान करता है।

लिखने के समय यह हार्ड फ्लोटिंग पॉइंट का समर्थन नहीं करता है, और इसलिए रास्पियन जैसे वितरण के साथ काम नहीं करेगा जो केवल हार्ड फ्लोट का उपयोग करते हैं - हालांकि यह भविष्य के रिलीज के लिए योजनाबद्ध है।

अद्यतन: जैसा कि डैरेन ने बताया, एक हार्ड फ्लोट संस्करण को अब एआरएम के लिए JDK8 पूर्वावलोकन रिलीज के रूप में जारी किया गया है, आप इसे यहां पा सकते हैं ।

अद्यतन 2: हार्ड फ्लोट अब JDK7 में समर्थित है।


कौन से वितरण इसका समर्थन करते हैं?
ज़ूट

2
@Zoot मैंने इसे डेबियन निचोड़ के साथ उपयोग किया है - इसे किसी भी लिनक्स वितरण का समर्थन करना चाहिए जो सॉफ्टफ़्लोट का उपयोग कर सकता है।
berry120

6

IcedTea-6-JRE-कोको पैकेज एक JIT कम्पाइलर होता है, और कथित तौर पर RasPi पर काम करता है

मैंने खुद इसकी कोशिश नहीं की है।


क्या यह सिर्फ JDK की बजाय JRE नहीं है?
बेरी

@ berry120: यह JRE में है कि JIT की जरूरत है। इससे कोई फर्क नहीं पड़ता कि क्या एक JIT उपयोग में था जब कार्यक्रम संकलित किया गया था।
फिन जुव

आह, अच्छी बात है। इसे
आजमाएंगे

1
काकाओ जेआईटी ठीक से काम नहीं करता है, कम से कम रास्पियन पर, और वहाँ एक आसान तय नहीं लगता है।
डैरेन विल्किंसन

4

Oracle ने अब ARM के लिए जावा JDK8 का एक डेवलपर प्रीव्यू जारी किया है जिसमें विशेष रूप से पाई पर हार्ड-फ्लोट रास्पियन के लिए समर्थन शामिल है। यह काम करता है, और मैंने इसे कुछ अस्थायी फ़्लोटिंग गहन संगणनाओं के लिए OpenJDK की तुलना में लगभग 20 गुना तेज पाया है। http://jdk8.java.net/fxarmpreview/


आपने मुझे इसमें हरा दिया! मैं बस उस पोस्ट के बारे में था :-)
berry120 13

3

Rasbian पर आप JamVM का उपयोग कर सकते हैं जिसमें "कोड-कॉपी-JIT" शामिल है

apt-get install icedtea-7-jre-jamvm

JamVM वर्तमान में सबसे तेज़ और सबसे स्थिर JVM है जिसमें रसबियन पर एक JIT शामिल है।

एवियन को रसबियन पर भी समर्थन दिया गया है जिसमें एक JIT भी शामिल है। आपको इसे मैन्युअल रूप से बनाना होगा: http://labb.zafena.se/?p=630

मुझे उम्मीद है कि एवियन रास्पियन में दिखाई देगा जब इसे डेबियन सिड स्रोत से बनाया गया है। एवियन वर्तमान में jvm-7-avian-jreपैकेज के अंदर प्रयोगात्मक रूप से डेबियन एसआईडी में मौजूद हैं ।

Avian और JamVM दोनों OpenJDK-7 वर्गों के साथ मिलकर काम करते हैं ताकि आप इनका उपयोग सभी जावा लॉन्चर जैसे जावा और जावा को गति देने के लिए कर सकें। फ़ाइल /etc/java-7-openjdk/jvm-armhf.cfgनिर्धारित करता है कि जेवीएम का उपयोग डिफ़ॉल्ट रूप से रासबियन पर ओपनजेक 7 के अंदर किया जाता है।

आप जावा लॉन्चर को व्यक्तिगत रूप से बता सकते हैं कि कौन सा jvm उपयोग करना है:

java -jamvm

javac -J-jamvm

2

रास्पबेरी पाई के एआरएम वास्तुकला के लिए ओरेकल ने जावा 8 और जावा 7 का पूर्ण संस्करण (अब पूर्वावलोकन नहीं) जारी किया: जावा 8 के लिंक

आप कमांड लाइन से भी उपयोग कर सकते हैं:

sudo apt-get update
sudo apt-get install oracle-java8-jdk

1

जावा जेडीके 8 से जेवीएम के साथ ओपनजेडके 7 को जोड़ना संभव है जिसमें एक्स 11 समर्थित और स्विंग / एडब्ल्यूटी के साथ एक सेटअप प्राप्त करने के लिए एक जेआईटी शामिल है।

जेएनआई इंटरफ़ेस, "क्लासपाथ" अपवाद के साथ, स्पष्ट रूप से जेवीएम और रनटाइम पर्यावरण वर्गों को अलग करता है। यदि आप JavaFX 8 पूर्वावलोकन से क्लाइंट हॉटस्पॉट (jre / lib / arm / client / libjvm.so) का उपयोग करते हैं तो Rasbian संकलित OpenJDK 7 रनटाइम एन्वायरमेंट क्लासेस और जावा लॉन्चर (/ usr / lib / jvm / java-7- के साथ संयोजन में किया जाता है) Openjdk-armhf) आपको निम्नलिखित सेटअप और लाभ मिलेंगे:

  • हॉटस्पॉट क्लाइंट JIT (JavaFX 8 पूर्वावलोकन से)
  • स्विंग / AWT समर्थन (OpenJDK वर्गों का उपयोग कर OpenJdk-7-jre पैकेज से)
  • पल्स-ऑडियो सपोर्ट (ओपनजेडक -7-जेआर और ओपनजेडक-7-जेआर-हेडलेस पैकेज से IcedTea पल्स-जावा)
  • वेब-ब्राउज़र एप्लेट समर्थन का उपयोग आइकडी-वेब (आइकडी-7-प्लगइन पैकेज से)
  • एक JNLP javaws लांचर का उपयोग icedtea- वेब (icedtea-7-plugin पैकेज से)
  • OpenJDK जावा लॉन्चर (OpenJDK जावा लॉन्चर्स द्वारा armhf JNI ऑटोडेटेक्शन armhf विशिष्ट सिस्टम लाइब्रेरी पथ को java.library.path में जोड़ता है)। / Usr / lib / arm-linux-gnueabihf पथ को java.library.path में शामिल करके, java पुस्तकालयों जैसे कि Pi4J GPIO लाइब्रेरी और जोगआम्प ग्लूगन-आरटी एसओजीएल / JOAL को सही ढंग से पता लगाने की अनुमति देता है कि यह आर्महफ लाइनक्स सिस्टम पर चल रहा है। और फिर armel JNI कार्यान्वयन के बजाय armhf JNI कार्यान्वयन को लोड करें।
  • JavaEE सर्वर अनुप्रयोगों के अंदर इमेज प्रोसेसिंग और प्रिंटिंग सपोर्ट, जैसे कि ग्लासफिश और टॉमकैट, हेडफुल OpenJDK कक्षाओं का उपयोग करके।

सेट अप:

से डाउनलोड JDK-8-EA-b36e-linux हाथ-hflt-29_nov_2012.tar.gz http://jdk8.java.net/fxarmpreview/index.html

# 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.