问题
In Nashorn it is possible to access predefined classes of java ,
var ArrayList = Java.type('java.util.ArrayList');
var list = new ArrayList();
list.add('a');
list.add('b');
list.add('c');
Like wise it is possible to access my classes in java script , If so how can it be done and should i be adding my jar in the classpath for referencing it ????
var ArrayList = Java.type('com.example.exa');
回答1:
You must use the -classpath
option of jrunscript
or jjs
.
-cp, -classpath (-cp path. Specify where to find user class files.)
The Java class:
package de.lhorn.so;
public class Foo {
public final static int ZERO = 0;
public static int i() {
return 1;
}
}
Compile it:
$ javac de/lhorn/so/Foo.java
$ tree de
de
└── lhorn
└── so
├── Foo.class
└── Foo.java
Use it:
% 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
来源:https://stackoverflow.com/questions/23102103/how-to-access-methods-from-my-class-inside-javascript-in-nashorn