محرك البرمجة النصية Java يستورد فصولي لا يعمل

StackOverflow https://stackoverflow.com/questions/2707729

  •  01-10-2019
  •  | 
  •  

سؤال

الرمز يستحق 1000 كلمة لشرح ذلك :-)

package jasim;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class JSTest {

    public static void main(String[] args) throws ScriptException {
        ScriptEngine jse = new ScriptEngineManager().getEngineByExtension("js");

        jse.eval("println(new jasim.JSTest().toString)");

    }

    @Override
    public String toString() {
        return "JSTest Object";
    }
}

سوف يفشل هذا الرمز مع الاستثناء أدناه:

Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "jasim" is not defined. (<Unknown source>#1) in <Unknown source> at line number 1

كيف يمكنني استيراد فصولي إلى scriptengine؟

هل كانت مفيدة؟

المحلول

بعد النظر في موزيلا وحيد القرن مستندات, ، الحل إما للاستخدام:

importPackage(Packages.jasim) داخل البرنامج النصي ، أو للاستخدام new Packages.jasim.JSTest()

هذا ليس واضحًا في مستندات Sun فيما يتعلق بـ ImportPackage في مستندات البرمجة النصية.

نصائح أخرى

بنفس الطريقة التي تستورد بها javax.script.ScriptEngine;...

فقط تأكد من أن فصولك في ClassPath

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top