java - 如何在 Nashorn 的 javascript 中访问我的类中的方法

标签 java javascript nashorn

在 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');

最佳答案

您必须使用jrunscriptjjs-classpath 选项。

-cp, -classpath (-cp path. Specify where to find user class files.)

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

关于java - 如何在 Nashorn 的 javascript 中访问我的类中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23102103/

相关文章:

java - 如何在docker内部获取kafka的解析网络?

java - apache-tomcat-9.0.0.M10 : Change Context-Path in META-INF/context. xml 不工作

javascript - 使用 JavaScript 从 URL 检查 YouTube 上的视频是否可用

javascript - 如何在 javascript Nashorn 引擎中解析 XML?

java - Nashorn 不再使用 BigDecimal

java - 在多个 nashorn ScriptEngine 之间共享 JavaScript 数组和对象

java - 检索 JSONObject 的字段名称 - Java

java - 如何创建一个只接受泛型参数而不接受原始类型参数的泛型方法?

javascript - 动态添加按钮省略确认

javascript - 在 Chosen from JS 中设置多个选项