在Nashorn中,可以访问Java的预定义类,
var ArrayList = Java.type('java.util.ArrayList'); var list = new ArrayList(); list.add('a'); list.add('b'); list.add('c');
同样明智的做法是可以使用Java脚本访问我的类,如果可以,该如何做?我应该在类路径中添加jar来引用它吗?
var ArrayList = Java.type('com.example.exa');
您必须使用或的-classpath选项。jrunscript``jjs
-classpath
jrunscript``jjs
-cp,-classpath(-cp路径。指定在何处查找用户类文件。)
Java类:
package de.lhorn.so; public class Foo { public final static int ZERO = 0; public static int i() { return 1; } }
编译:
$ javac de/lhorn/so/Foo.java $ tree de de └── lhorn └── so ├── Foo.class └── Foo.java
用它:
% jrunscript -cp . nashorn> var Foo = Java.type("de.lhorn.so.Foo") nashorn> Foo.ZERO 0 nashorn> Foo.i [jdk.internal.dynalink.beans.SimpleDynamicMethod int de.lhorn.so.Foo.i()] nashorn> Foo.i() 1