سؤال

حسنًا، لقد قمت بإنشاء ملف JavaScript يسمى test.js والذي يحتوي على الكود التالي:

print("It works!");

لقد قمت بتجميعها باستخدام Rhino JavaScript Compiler دون أي أخطاء.ثم قمت بإنشاء ملف جديد يسمى foo.js والذي يحتوي على هذا الكود :

var test = require("./test.class");

الآن عندما أركض foo.js في Ringo in يلقي الاستثناء التالي وتتبع المكدس:

Uncaught exception:
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.ringojs.tools.launcher.Main.run(Main.java:66)
    at org.ringojs.tools.launcher.Main.main(Main.java:45)
Caused by: java.lang.NoClassDefFoundError: /home/aaditmshah/test (wrong name: test)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at org.mozilla.javascript.DefiningClassLoader.defineClass(DefiningClassLoader.java:62)
    at org.ringojs.engine.ClassModuleLoader.load(ModuleLoader.java:126)
    at org.ringojs.engine.ReloadableScript.compileScript(ReloadableScript.java:153)
    at org.ringojs.engine.ReloadableScript.getScript(ReloadableScript.java:118)
    at org.ringojs.engine.ReloadableScript.exec(ReloadableScript.java:227)
    at org.ringojs.engine.ReloadableScript.load(ReloadableScript.java:215)
    at org.ringojs.engine.RingoWorker.loadModuleInternal(RingoWorker.java:283)
    at org.ringojs.engine.Require.call(Require.java:81)
    at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:97)
    at org.mozilla.javascript.gen._home_aaditmshah_foo_js_3._c_script_0(/home/aaditmshah/foo.js:1)
    at org.mozilla.javascript.gen._home_aaditmshah_foo_js_3.call(/home/aaditmshah/foo.js)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:426)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3178)
    at org.mozilla.javascript.gen._home_aaditmshah_foo_js_3.call(/home/aaditmshah/foo.js)
    at org.mozilla.javascript.gen._home_aaditmshah_foo_js_3.exec(/home/aaditmshah/foo.js)
    at org.ringojs.engine.ReloadableScript.evaluate(ReloadableScript.java:186)
    at org.ringojs.engine.RingoWorker.evaluateScript(RingoWorker.java:315)
    at org.ringojs.engine.RhinoEngine.runScript(RhinoEngine.java:186)
    at org.ringojs.tools.RingoRunner.run(RingoRunner.java:152)
    ... 6 more
enter code here

لا أعرف أين أخطئ.لدي أحدث الإصدارات من Ringo وRhino 1.7R3.لقد أضفت الدليل الحالي إلى مسار الفصل الخاص بي عن طريق إضافة السطر التالي مسبقًا إلى foo.js:

addToClasspath(module.resolve("."));

ومع ذلك، فإنه لا يزال يولد نفس الخطأ.ليس لدي أي فكرة عن كيفية جعل هذا العمل.أي مساعدة سوف تكون محل تقدير كبير.

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

المحلول

حسنًا، لقد نظرت إلى تتبع المكدس بشكل أقرب قليلاً، وأدركت أنه يعثر على ملف الفئة بشكل صحيح، ولكنه يحاول فقط تحميله من الحزمة الخاطئة (home.aaditmshah.test بدلا من مجرد test).إذا كان ملف الفئة موجودًا في مسار الوحدة النمطية الخاصة بك، فيمكنك تحميله بشكل صحيح باستخدام اسم الوحدة النمطية (الفئة) فقط.بشكل افتراضي، الدليل الحالي ليس موجودًا في مسار الوحدة، لذا سيتعين عليك إضافته أولاً:

require.paths.push('.')
var test = require("test.class");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top