좋아, 그래서 나는 다음과 같은 코드를 포함 test.js
라는 자바 스크립트 파일을 만들었습니다. 내가 링고에 foo.js
을 실행할 때 다음과 같은 예외 스택 추적 던져 지금미리 컴파일 된 JavaScript 모듈은 어떻게 RingoJS에로드됩니까? 내가 어떤 오류없이 코뿔소는 자바 스크립트 컴파일러를 사용하여 컴파일 된</p> <pre><code>print("It works!"); </code></pre> <p>:
var test = require("./test.class");
:
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
내가 모르겠어요 그럼이 코드를 포함 foo.js
라는 새로운 파일을 생성 나는 잘못 가고있다. 최신 버전의 Ringo 및 Rhino 1.7R3을 사용하고 있습니다. 나는 foo.js
에 다음 줄을 앞에 붙이는 내 클래스 경로에 현재 디렉토리를 추가 :
addToClasspath(module.resolve("."));
그러나, 여전히 같은 오류가 발생합니다. 나는이 일을 어떻게하는지 잘 모른다. 어떤 도움이라도 대단히 감사하겠습니다.
가 실제로'.class' 확장이 필요한이 파일이 존재하는'ModuleLoader'를 알 수 있기 때문에 Rhino의'jsc' 도구로 컴파일 된 JavaScript가 필요합니다. '.class' 확장을 삭제하면 (자), 같은 이름의'.js' 파일을로드하려고합니다. 다음 커밋을 참조하십시오. https://github.com/ringo/ringojs/commit/20eee6739da7c69bf93c19d544abc2896df6b7a5 –
@AaditMShah 오류 메시지를 더 자세히보고 내 대답을 업데이트했습니다. 수정 사항에 대한 알림을 받는지 여부는 알 수 없으므로 여기로 이동하십시오. –
감사합니다. 그게 내 문제를 해결해 줬어. 제 실수를 이해하도록 시간을내어 주셔서 감사합니다. 정말 감사합니다. =) –