سؤال

ولقد كتبت بعض النصوص في جافا سكريبت تحت الكركدن 1.7، واحد منهم يبدأ المتشعب الخادم الحد الأدنى وتقبل أوامر JS في الإدخال.

والآن، إذا أسميه (من داخل الكركدن):

engine = ScriptEngineManager().getEngineByName("JavaScript");

وأحصل على محرك مدمج JS (من جاوة 1.6)، وهذا هو نسخة قديمة من وحيد القرن، ويفتقر إلى بعض الوظائف (مثل ل JavaAdapter لواجهات متعددة).

وكيف يمكنني الحصول على محرك وحيد القرن بدلا من ذلك؟ هل أنا بحاجة ScriptEngineManager.getEngineFactories () أو ماذا؟

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

المحلول 2

ولقد وجدت بها نفسي (التجربة والخطأ). كما ذكر أعلاه، الكركدن لا تسجيل مصنع المحرك. يمكنك الحصول على محرك الحالي (كسياق وكائن النصية):

cx = Context.getCurrentContext();
scope = new ImporterTopLevel(cx);

ومع هذه الكائنات، لا أستطيع تشغيل كتاباتي أو خطوط الأوامر باستخدام evalString / evalReader.

نصائح أخرى

وماذا تريد تحقيقه هو تحديد إصدار معين من محرك السيناريو الذي ينفذ "جافا سكريبت". الطريقة الصحيحة لذلك هي دعوة ScriptEngineManager.getEngineFactories() ومن ثم تحقق من نتائج getLanguageName() وgetEngineVersion().

وقبل استدعاء النصي الأولي الخاص بك، لماذا لا يتم تعيين محرك كنت تستخدم كمتغير السياق داخل النص؟ وبهذه الطريقة، داخل السيناريو، سيكون لديك الوصول إلى محرك يعمل بنظام التشغيل ذلك.

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