Próbuję uruchomić Oracle'a Nashorn w Javie 7.Nashorn pod Javą 7
Sklonowałem repozytorium i skompilowałem źródło. Wszystko co musiałem zrobić, aby zmusić go do kompilacji było:
- Zmień jdk.internal.org.objectweb.asm * do org.objectweb.asm *
- zmienić jeden wiersz, który miał Long.hashCode (..) statyczne.
Wszystko wydaje się szczęśliwe, a Java 7 widzi Nashorna jako silnik skryptowy; ale gdy próbuję i uzyskać instancję:
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
ScriptEngine engine = factory.getScriptEngine();
otrzymuję wyjątek:
java.lang.RuntimeException: java.lang.ClassNotFoundException: jdk.nashorn.internal.objects.Global w jdk.nashorn.internal.runtime.Context.newGlobalTrusted (Context.java:831) w jdk.nashorn.internal.runtime.Context.newGlobal (Context.java:636) w jdk.nashorn.api.scripting. NashornScriptEngine $ 2.run (NashornEngine.java:270) at jdk.nashorn.api.scripting.NashornScriptEngine $ 2.run (NashornScriptEngine.java:266) na java.security.AccessController.doPrivileged (metoda podstawowa) na jdk.nashorn.api.scripting.NashornScriptEngine.createNashornGlobal (NashornScriptEngine.java : 266) w jdk.nashorn.api.scripting.NashornScriptEngine (NashornScriptEngine.java:104) w jdk.nashorn.api.scripting.NashornScriptEngine (NashornScriptEngine.java:78) w jdk.nashorn... api.scripting.NashornScriptEngineFactory.getScriptEngine (NashornScriptEngineFactory.java:139)
jdk.nashorn.internal.objects.Global jest na mojej ścieżce zajęć. Czy Nashorn może używać innego programu ładującego klasy?
Dzięki. Istnieje wiele zmian w źródle Nashorn między kodem, który jest dostępny teraz, a backbackiem bitbucket. Kod Nashorn, który podaje powyższe błędy, nie znajduje się nawet w wersji bitbucket. – Kong
Przestałem używać go, gdy tylko pojawił się podgląd Java 8, który zawierał Nashorn. Jeśli korzystasz z Nashorn za pośrednictwem interfejsu API JSR223, twój kod będzie działał z Rhino w Javie 7, jeśli zostanie poprawnie napisany i jak się z nimi rozwinie w tej chwili. –