2011-04-06 24 views
0

我對某些JavaScript使用jrunscript。奇蹟般有效。現在我想在JRunScript中使用E4X。下面的語句應該工作:在jrunscript中使用E4X?

var x = <hello />; 
var y = new XML(); 

,但我得到:

js> var x = <hello />; 
script error: sun.org.mozilla.javascript.internal.EvaluatorException: 
syntax error (<STDIN>#1) in <STDIN> at line number 1 
js> var x = new XML(); 
script error: sun.org.mozilla.javascript.internal.EcmaError: 
ReferenceError: "XML" is not defined. (<STDIN>#1) in <STDIN> at line number 1 
js> 

閒逛我發現引用xmlbeans.jar爲前提,但XMLBeans的-2.4.0.jar在lib/ext目錄。

java -version : 
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Linux x86-32 
jrunscript -q : 
Language ECMAScript 1.6 implemention "Mozilla Rhino" 1.6 release 2 

那麼我怎麼會錯過E4X在我的jrunscript中不可用?

+0

自閉合斜線之前的空格不是必需的,除非您編寫的是HTML,而不是XML。 – 2011-04-10 07:27:04

回答

0

確保在運行腳本之前設置正確的JavaScript版本,方法是呼叫version(160)或使用-version 160啓動標誌。如果您將Rhino更新爲更新的版本,您還可以使用180(JavaScript 1.8)。

+0

嗨Eli, thx停止。你能詳細說明使用版本(160)還是-version 160;我嘗試了「jrunscript -version 160」,但也得到了一個錯誤-Dversion = 160沒有幫助。和「版本(160);」我的Rhino運行時是未知的。當我做「jrunscript -q」時,我得到「語言ECMAScript 1.6實現」Mozilla Rhino「1.6 release 2」。建議? – stwissel 2011-04-11 14:49:14

+0

我正在談論犀牛本身,而不是'jrunscript'。只要用那面旗子跑犀牛。 – 2011-04-12 00:50:06

+0

嗨Eli,你可能錯過了我的第一句話:「我爲一些JavaScript使用** jrunscript **,像魅力一樣工作,現在我想在** JRunScript **中使用E4X。」 – stwissel 2011-04-18 17:22:52

1

看一看Java Scripting Programmer's Guide,具體如下:

E4X(用於XML的ECMAScript - ECMA標準357)已被排除。在JavaScript代碼中使用 XML文字將導致語法錯誤。注意 E4X支持在ECMAScript標準中是可選的 - 一個 實現可以省略E4X支持並且仍然是兼容的 ECMAScript實現。

+0

我知道它是可選的,我知道它在Mozilla Rhino實現中。我正在尋找的是如何讓JVM/JKD在運行jrunscript時使用Mozilla Rhino實現而不是默認的JDK實現 – stwissel 2011-11-15 14:30:44

+0

在運行JRE附帶的jrunscript時,不能將完整的Mozilla Rhino替換爲精簡版本/的JDK。 jrunscript不過是一個剝離下來的Mozilla Rhino的包裝,如果不改寫jrunscript就無法更改。 – Teez 2012-02-25 02:21:42