2013-06-05 11 views
5

मैं Oracle की Nashorn जावा 7.Nashorn जावा 7 के तहत

के तहत चल रहा रेपो क्लोन और स्रोत संकलित किया है पाने के लिए कोशिश कर रहा हूँ। सभी मैं इसे संकलित करने के लिए प्राप्त करने के लिए करना पड़ा था: jdk.internal.org.objectweb.asm

  • बदलें * org.objectweb.asm को *
  • बदलें एक पंक्ति है कि Long.hashCode था (।।) स्थिर।

सब कुछ खुश दिखता है, और जावा 7 नैशॉर्न को एक स्क्रिप्टिंग इंजन के रूप में देखता है; लेकिन जब मैं कोशिश करते हैं और एक उदाहरण मिलता है:

java.lang.RuntimeException: java.lang.ClassNotFoundException: jdk.nashorn.internal.objects.Global पर

NashornScriptEngineFactory factory = new NashornScriptEngineFactory(); 
ScriptEngine engine = factory.getScriptEngine(); 

मैं अपवाद jdk.nashorn.internal.runtime.Context.newGlobalTrusted (Context.java:831) jdk.nashorn.internal.runtime.Context.newGlobal (Context.java:636) पर jdk.nashorn.api.scripting पर। नैशर्नस्क्रिप्टइंजिन $ 2.run (नैशर्नस्क्रिप्टइंजिन.जावा 7070) परjdk.nashorn.api.scripting.NashornScriptEngine $ 2.run (NashornScriptEngine.java:266) jdk.nashorn.api.scripting.NashornScriptEngine.createNashornGlobal पर java.security.AccessController.doPrivileged (मूल निवासी विधि) (NashornScriptEngine.java पर : 266) पर jdk.nashorn.api.scripting.NashornScriptEngine (NashornScriptEngine.java:104) jdk.nashorn.api.scripting.NashornScriptEngine (NashornScriptEngine.java:78 पर) jdk.nashorn पर।।। api.scripting.NashornScriptEngineFactory.getScriptEngine (NashornScriptEngineFactory.java:139)

jdk.nashorn.internal.objects.Global है मेरे वर्ग पथ में। क्या नैशर्न शायद एक अलग वर्ग लोडर का उपयोग करता है?

उत्तर

7

मैंने इसे पहले 7 के तहत काम करने की कोशिश की और आपके पास उसी त्रुटि से मुलाकात की गई। मुझे लगता है कि इसे इस तथ्य से करना है कि नैशॉर्न जावा 8 में कुछ नई सुविधाओं का उपयोग करता है।

बिटबकेट पर जेडीके 7 के लिए नैशर्न का backport है; मैंने एक ब्लॉग पोस्ट लिखा है कि यह मेरे काम ब्लॉग here पर इसका उपयोग कैसे करें। अधिक जानकारी के लिए आप this stack overflow question पर भी देख सकते हैं।

उस बिटबकेट परियोजना को कुछ समय में अपडेट नहीं किया गया है, तो मैं अनुशंसा करता हूं कि आप Java 8 के पूर्वावलोकन का उपयोग करें यदि आप नैशर्न के साथ खेलना चाहते हैं।

+0

धन्यवाद। अब उपलब्ध कोड और बिटबकेट बैकपोर्ट के बीच नैशर्न स्रोत में बहुत सारे बदलाव हैं। उपरोक्त त्रुटियों को दे रहे नैशोर्न कोड बिटबकेट संस्करण में भी नहीं है। – Kong

+0

जैसे ही जावा 8 पूर्वावलोकन आया था, उसमें मैंने इसका उपयोग बंद कर दिया था जिसमें इसमें नैशर्न था। यदि आप जेएसआर 223 एपीआई के माध्यम से नैशर्न का उपयोग करते हैं तो आपका कोड जावा 7 में राइनो के साथ काम करेगा यदि सही ढंग से लिखा गया है, तो मैं इस समय दोनों के साथ कैसे विकसित हूं। –

संबंधित मुद्दे