2012-09-13 24 views
11

मैं राइनो 1.7R4 उपयोग कर रहा हूँ और 1.2 env.js जावाराइनो प्रिंट समारोह

मैं जावा कंसोल के लिए मेरी जावास्क्रिप्ट कोड से एक स्ट्रिंग प्रिंट करना चाहते हैं अंदर जावास्क्रिप्ट कोड को चलाने के लिए।

के अनुसार

: http://evilroundabout.blogspot.com.au/2009/11/javascript-printing-rhino.html

का उपयोग करना चाहिए: प्रिंट ("हैलो दुनिया");

लेकिन मैं जब मैं करता हूँ:

org.mozilla.javascript.EcmaError: ReferenceError: "print" is not defined. (svg-renderer-highcharts-2.1.4.js#20) 
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687) 
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665) 
at org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3750) 
at org.mozilla.javascript.ScriptRuntime.nameOrFunction(ScriptRuntime.java:1794) 
at org.mozilla.javascript.ScriptRuntime.getNameFunctionAndThis(ScriptRuntime.java:2188) 
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:1308) 
at script.renderSVGFromObject(svg-renderer-highcharts-2.1.4.js:20) 

अगर मैं का उपयोग document.write मैं किसी भी उत्पादन नहीं दिख रहा।

+0

अपना जावास्क्रिप्ट और जावा कोड लाएं। – randominstanceOfLivingThing

उत्तर

18

मुझे नहीं लगता कि एम्बेडेड मोड में काम करेंगे है, मुझे लगता है कि केवल राइनो कंसोल में काम करेंगे।

आप java.lang.system.out.println का उपयोग कर सकते हैं। यह काम करना चाहिए: -

java.lang.System.out.println("HELLO") 
6

आप अपनी खुद की बना सकते हैं:

function print() { 
    for(var i = 0; i < arguments.length; i++) { 
     var value = arguments[i]; 
     java.lang.System.out.print(value); 
    } 
    java.lang.System.out.println(); 
} 

function printf(format) { 
    java.lang.System.out.printf(format, Array.prototype.slice.call(arguments)); 
} 
14

आपको लगता है कि राइनो खोल काफी आसानी से उपयोग करता है एक ही गुंजाइश उपयोग कर सकते हैं। गैंडो शैल ग्लोबल नामक विशेष रूप से निर्मित स्कोप इंस्टेंस पर निर्भर करता है जो "प्रिंट" जैसे कई कार्यों को परिभाषित करता है। नीचे दिया गया नमूना दर्शाता है कि ग्लोबल और "प्रिंट" फ़ंक्शन का उपयोग कैसे करें। यह "हैलो वर्ल्ड!" प्रिंट करेगा दो बार stdout करने के लिए।

import org.mozilla.javascript.Context; 
import org.mozilla.javascript.tools.shell.Global; 

/** 
* Hello world! 
* 
*/ 
public class App 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("Hello World!"); 

     Context cx = Context.enter(); 
     Global global = new Global(cx); 
     cx.evaluateString(global, "print('Hello World!')", 
       "helloWorld.js", 1, null); 
     Context.exit(); 
    } 
} 

मैं Rhino shell executable के माध्यम से खुदाई के बाद प्रयोग के माध्यम से इस खोज की।

"defineClass", 
"deserialize", 
"doctest", 
"gc", 
"help", 
"load", 
"loadClass", 
"print", 
"quit", 
"readFile", 
"readUrl", 
"runCommand", 
"seal", 
"serialize", 
"spawn", 
"sync", 
"toint32", 
"version" 
+0

मेरे उत्तर में अपडेट देखें – flow

5
जनवरी 2014,

new org.mozilla.javascript.tools.shell.Global(org.mozilla.javascript.Context.enter()) 

पर तरीकों और संपत्तियों की सूची में प्रकट होता के रूप में

:

और पूर्णता यहाँ की खातिर अन्य वैश्विक कार्यों Global द्वारा परिभाषित कर रहे हैं निम्न हो:

defineClass 
deserialize 
doctest 
gc 
getConsole 
getErr 
getIn 
getOut 
getPrompts 
help 
init 
init 
initQuitAction 
installRequire 
isInitialized 
load 
loadClass 
pipe 
print 
quit 
readFile 
readUrl 
runCommand 
runDoctest 
seal 
serialize 
setErr 
setIn 
setOut 
setSealedStdLib 
spawn 
sync 
toint32 
version