Запуск Java из Nashron JavaScript - исключение java.lang.ClassNotFoundException

Я запустил MyJava.jjs (для запуска Java из JavaScript с помощью Nashorn)

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.


person Paul Verest    schedule 08.12.2014    source источник


Ответы (1)


Я должен был пройти мимо пути к классам

jjs -cp ./ runJava.jjs

см. http://docs.oracle.com/javase/8/docs/technotes/tools/unix/jjs.html

и Java уже должна быть скомпилирована

javac *.java

как получить доступ к методам моего класса внутри javascript в Нашорн

person Paul Verest    schedule 08.12.2014