本例演示怎样通过JS脚本导入JAVA类包,我们创建JS引擎后,通过eval方法调用 getScript() ,JS脚本中importPackage(java.util)为导入包。
5 B& O) q' ~2 s) \7 c6 R1 [
9 v' |: f# K+ E2 E/ A$ U package ajava.code.javase;
% g9 a1 h) {$ ~' t2 P
( M2 t# Y1 a3 }1 U% ]5 j+ w import javax.script.ScriptEngineManager;
( @$ {; L, x+ Y$ y& Z# q, g
$ P. R J" W8 N7 u, d1 E import javax.script.ScriptEngine;
+ `" A6 |" B' T
( Z4 q" A) t( I2 H3 J import javax.script.ScriptException;# b1 O4 p4 Q! x" ~, f
" y0 |: V9 g% { d& q
public class AjavaImportPackageExample {8 ~9 L6 G; ?8 r9 N$ }
7 l# s- z% x: g" s( |/ d
public static void main(String[] args) {
' Y; m2 f1 K, H" r- G& l+ v 1 q) W! M, x& ~3 b
ScriptEngineManager manager = new ScriptEngineManager();
w/ v/ S) `' j2 g
1 t5 o6 [ i- ~# N ScriptEngine engine = manager.getEngineByExtension("js");7 u2 `! y: R$ v4 a. K. A/ ?
$ E' Z+ F& N4 W+ T- [/ z- n
try {: s$ t1 t( H; ]6 p+ Y5 J+ Q9 h
$ l% Z3 z, J0 j7 K; ]* P engine.eval(getScript());, ~+ e' h. _; }4 e" U( D" X
; M$ `7 X3 _; \& {" {
} catch (ScriptException e) {6 I9 u' j" R* w6 {: N3 U3 C& ]
o a$ |7 ~, m; u' h9 c% F& f
e.printStackTrace();2 M' S/ d: N" d/ p; ]
6 w( k* M+ r6 F& _# J& B
}
: c0 r" R0 Y# E# T1 L e) u K$ g1 s* ]3 _% e
}
% |/ f: G3 y' Y/ e 6 V, z7 l6 k) r$ q" Z, Q; J
private static String getScript() {- O2 F' d# z( ~2 B( M4 l) ^2 R
% l1 r8 f* s8 |
StringBuilder sb = new StringBuilder();8 ~% O7 h \% d: k0 p6 z
: O- @ q+ s9 |7 _$ o+ k/ S& v
sb.append("importPackage(java.util);");+ b, d; J4 d& E1 N7 b
# Z' i: e5 Y' ^9 u) F4 Q& M
sb.append("");
& p4 ?! b; I2 v% J/ Y7 ~2 I: L }% U. z% z1 x9 T2 s% ~ C: ~
sb.append("var today = new Date();");
: _1 I' M7 m/ D
+ {5 z) @+ B [* ]8 h5 s sb.append("println('ajava.org原创日期: ' + today);");
) i% u1 C8 e7 z6 Q% J4 X7 x + w E/ E8 v7 m- u+ O$ |& b
return sb.toString(); ?+ u( P* A8 g1 {8 l
2 q" t/ b: L, y( [- b# z
}' V: E4 v0 C! W
) N6 q( a! a" }4 l$ C }7 G3 Q! m7 @+ Y4 ]) C; Z9 d0 I" T
8 e( j: W) c1 t* i( N9 U- ?+ r; @
运行结果:
3 b, r7 B0 d f# {" p+ g3 }0 q; o
/ z! c# s5 R3 p% o+ L# a3 h' [ ajava.org原创日期: Tue Mar 27 2012 14:42:14 GMT+0800 (CST) |