2015-12-20 8 views
7

मैं जावा से जावास्क्रिप्ट फ़ंक्शन निष्पादित करना चाहता हूं। मैं कोडजावा विधि से जावास्क्रिप्ट को कॉल करना

ScriptEngineManager manager = new ScriptEngineManager();  
ScriptEngine engine = manager.getEngineByName("JavaScript"); 

का निम्न भाग का इस्तेमाल किया है, लेकिन इस alert() विधि के लिए एक अपवाद फेंकता है?

engine.eval("alert('HI');"); 
+0

'प्रयास करें eval (" चेतावनी (\ "HI \") "); ' –

उत्तर

0

आप किसी भी तरह से जावा से जावास्क्रिप्ट को कॉल नहीं कर सकते हैं। जावास्क्रिप्ट क्लाइंट साइड भाषा और ब्राउज़र पर निष्पादित जहां जावा के रूप में सर्वर पर निष्पादित किया जाता है

अद्यतन है: - धन्यवाद लोग मैं यहाँ कुछ नया सीखा है।

जब मैं सेशन में कोड निष्पादित मैं त्रुटि नीचे मिल

Error executing script: ReferenceError: "alert" is not defined in <eval> at line number 1 

कारण, चेतावनी जावास्क्रिप्ट का हिस्सा नहीं है है यह वेब browsers.so द्वारा प्रदान की खिड़की वस्तु, Nashhorn जावास्क्रिप्ट इंजन पता नहीं है का हिस्सा है इसके बारे में।

कृपया देखें ReferenceError: "alert" is not defined

+0

स्क्रिप्टिंग एपीआई के माध्यम से यह संभव है, जो ओपी उपयोग कर रहा है: https://docs.oracle.com/javase/8/docs/technotes/guides/scripting/prog_guide/api.html – user3707125

+0

स्क्रिप्टिंग एपीआई की मदद से हम मूल जावास्क्रिप्ट को कॉल करने में सक्षम हो सकता है लेकिन हम इसका उपयोग नहीं कर सकते हैं y पूर्वनिर्धारित विधि यह एक अपवाद फेंक देगी ताकि अगर आप किसी अन्य समाधान को जानते हैं तो कृपया उपयोगकर्ता 3707125 –

+0

@AhihijitDesai कृपया मेरा अपडेट देखें –

2

So. मुझे पूरा यकीन है कि आपका कोड यहां गलत है।

engine.eval("alert(HI);"); 

कोशिश करें।

engine.eval("alert('Hi');"); 

जब तक आपके पास एक परिवर्तनीय HI घोषित नहीं है।

+0

आपको हाय –

+0

के आसपास उद्धरणों से बचने की आवश्यकता है, कृपया आप लिंक दे सकते हैं जहां मैं कर सकता हूं जावा –

-1

आप इसे गलत तरीके से कर रहे हैं, आप जावा कोड से जावास्क्रिप्ट फ़ंक्शन को कॉल नहीं कर सकते हैं क्योंकि किसी को क्लाइंट पक्ष पर और अन्य सर्वर पर निष्पादित किया जाता है ... भले ही आप कुछ एपीआई का उपयोग करके प्राप्त करते हैं, यह कोड के आर्किटेक्चरिंग का गलत तरीका है ।

+0

में जेएस का उपयोग करने के कुछ उदाहरण/ट्यूटोरियल देखें मेरा मतलब है कि यह नेट के साथ पावरहेल फ़ंक्शंस को कॉल करने से अलग नहीं है। या एसक्यूएल स्टेटमेंट्स ... –

+0

सर्वरसाइड स्क्रिप्टिंग एक सुरुचिपूर्ण चीज है और यहां तक ​​कि परिष्कृत वास्तुकला भी हो सकती है – Marged

1

ऐसा प्रतीत होता है कि "अलर्ट()" वेब ब्राउज़र द्वारा प्रदान की गई विंडो ऑब्जेक्ट का हिस्सा है। it doesn't exist here

मैं बदलाव कर दिया है जावा कोड:

ScriptEngineManager manager = new ScriptEngineManager();  
ScriptEngine engine = manager.getEngineByName("JavaScript"); 
engine.eval("print('HI');"); 

यह उपयोगी है: Java Scripting Programmer's Guide
Javscript खिड़की वस्तु के बारे में जानकारी: The Window Object

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