Tôi đang cố gắng để có được Nashorn của Oracle đang chạy dưới Java 7.Nashorn dưới Java 7
Tôi đã nhân bản repo và biên dịch nguồn. Tất cả tôi phải làm gì để có được nó để biên dịch là:
- Thay đổi jdk.internal.org.objectweb.asm * để org.objectweb.asm *
- Thay đổi một dòng mà có Long.hashCode (..) tĩnh.
Mọi thứ có vẻ vui vẻ và Java 7 xem Nashorn là công cụ tạo kịch bản; nhưng khi tôi cố gắng và có được một ví dụ:
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
ScriptEngine engine = factory.getScriptEngine();
tôi nhận được ngoại lệ:
java.lang.RuntimeException: java.lang.ClassNotFoundException: jdk.nashorn.internal.objects.Global tại jdk.nashorn.internal.runtime.Context.newGlobalTrusted (Context.java:831) tại jdk.nashorn.internal.runtime.Context.newGlobal (Context.java:636) tại jdk.nashorn.api.scripting. NashornScriptEngine $ 2.run (NashornScriptEngine.java:270) tại jdk.nashorn.api.scripting.NashornScriptEngine $ 2.run (NashornScriptEngine.java:266) tại java.security.AccessController.doPrivileged (Phương thức Gốc) tại jdk.nashorn.api.scripting.NashornScriptEngine.createNashornGlobal (NashornScriptEngine.java : 266) tại jdk.nashorn.api.scripting.NashornScriptEngine (NashornScriptEngine.java:104) tại jdk.nashorn.api.scripting.NashornScriptEngine (NashornScriptEngine.java:78) tại jdk.nashorn... api.scripting.NashornScriptEngineFactory.getScriptEngine (NashornScriptEngineFactory.java:139)
jdk.nashorn.internal.objects.Global là trong con đường của tôi. Nashorn có sử dụng trình nạp lớp khác không?
Cảm ơn. Có rất nhiều thay đổi đối với nguồn Nashorn giữa mã hiện có sẵn và backport bitbucket. Mã Nashorn đưa ra các lỗi ở trên thậm chí không có trong phiên bản bitbucket. – Kong
Tôi đã ngừng sử dụng nó ngay khi bản xem trước Java 8 xuất hiện có chứa Nashorn trong đó. Nếu bạn sử dụng Nashorn thông qua API JSR223, mã của bạn sẽ làm việc với Rhino trong Java 7 nếu được viết chính xác, đó là cách tôi phát triển với cả hai tại thời điểm này. –