Running Java from Nashron JavaScript - Exception java.lang.C

Running Java from Nashron JavaScript - Exception java.lang.ClassNotFoundException

本文关键字:Exception java lang JavaScript Java from Nashron Running      更新时间:2023-09-26

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 中访问我的类中的方法