I have runMyJava.jjs (使用 Nashorn 从 JavaScript 中运行 Java)
var javaClass = Java.type('mypackage.MyJavaClass');
javaClass.hello();
运行
package mypackage;
public class MyJavaClass {
public static void main(String[] args) {
System.out.println("hello from MyJavaClass.main ");
}
}
但我得到
Exception in thread "main" java.lang.RuntimeException: java.lang.ClassNotFoundException: mypackage.MyJavaClass
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:382)
at jdk.nashorn.tools.Shell.apply(Shell.java:381)
at jdk.nashorn.tools.Shell.runScripts(Shell.java:310)
at jdk.nashorn.tools.Shell.run(Shell.java:166)
at jdk.nashorn.tools.Shell.main(Shell.java:130)
at jdk.nashorn.tools.Shell.main(Shell.java:109)
Caused by: java.lang.ClassNotFoundException: mypackage.MyJavaClass
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
从 Eclipse/Enide Studio 或在终端 jjs runJava.jjs
中运行时
所有项目都在 https://github.com/paulvi/JavaRoot
我应该运行传递类路径
jjs -cp ./ runJava.jjs
见 http://docs.oracle.com/javase/8/docs/technotes/tools/unix/jjs.html
并且Java应该已经编译好了
javac *.java
如何在 Nashorn 中的 JavaScript 中访问我的类中的方法