Нашорн не смог вызвать статический метод стороннего класса Java, какие-либо решения? - PullRequest
1 голос
/ 30 октября 2019

Код в Nashorn - это синтаксический анализ очень простой строки JSON в JSONObject (com.alibaba.fastjson.JSONObject), просто такой:

   var jso = Java.type('com.alibaba.fastjson.JSONObject').parseObject('{"name": "nothing"}');

Но когда я запустил проект Java, я получилниже сообщение об ошибке:

Exception in thread "main" javax.script.ScriptException: TypeError: Java.type("com.alibaba.fastjson.JSONObject").parseObject is not a function in <eval> at line number 1
    at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470)
    at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:454)
    at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406)
    at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402)
    at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155)
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233)
...

Я пытался print(Java.type('com.alibaba.fastjson.JSONObject')), и класс, очевидно, там с выводом [JavaClass com.alibaba.fastjson.JSONObject]

Кто-нибудь знает, что является основной причиной этой ошибки, и какэто исправить?

...