当我尝试使用 ant 构建我的项目时,我得到:“java.lang.NoClassDefFoundError: sun/org/mozilla/javascript/internal/Scriptable”
这源于我对 Rhino 的使用(Oracle JDK 附带的捆绑 java 脚本)
- 当我用 Eclipse 构建项目时,一切正常。
- 我使用的 ant 文件是由 eclipse 生成的,除了 java-script 依赖项外,它工作正常。
- 这些依赖项位于 oracle JDK 附带的 RT.jar 中。
- 我已经尝试了 jdk6_0_u41 和 jdk7,并且都给出了相同的结果:在 eclipse 中成功,在 ant 中失败。
- 我尝试在 ubuntu 10 和 12 上构建
我还看到了另外两个对我来说似乎无法接受的建议:
- 一个线程建议将 RT.jar 复制到项目 lib 目录中。(RT 是整个 java 运行时!)
- 另一个线程建议我不应该使用:sun/org/mozilla/javascript/internal。但由于我正在进行高级操作(调用对象方法、注册回调等),我认为除了使用 sun.org.mozilla.javascript.internal 系列类之外别无选择。