链接到Rhino时为java生成ant脚本的问题



当我尝试使用ant构建我的项目时,我得到:" . lang。NoClassDefFoundError:太阳/org/mozilla/javascript/internal/Scriptable "

这源于我使用Rhino (Oracle JDK附带的捆绑java脚本)

  • 当我用eclipse构建项目时,一切正常。
  • 我使用的ant文件是由eclipse生成的,除了java脚本依赖之外,工作得很好。
  • 这些依赖项位于oracle JDK附带的RT.jar中。
  • 我尝试了jdk6_0_u41和jdk7,两者都给出了相同的结果:eclipse成功,ant失败。
  • 我已经尝试在ubuntu 10和12上构建了

我还看到了另外两个我似乎不能接受的建议:

  • 一个线程建议将RT.jar复制到项目库目录。(RT是整个java运行时!)
  • 另一个线程建议我不应该使用:sun/org/mozilla/javascript/internal。但是,由于我正在进行高级操作(调用对象方法,注册回调等),我认为除了使用sun.org.mozilla.javascript.internal类家族之外没有其他选择。

来自Oracle网站的评论:

用户不应该编写依赖于内部JDK实现类的代码。这样的类是内部实现的JDK的详细信息,如有更改,不另行通知。

这不是编译器的问题。Javac运行正常到ct.sym中提供的信息

这个问题属于那些决定应该提供什么的人(以及应该隐藏的内容)ct.sym

你可以建议将Rhino的jar包含到你的项目中,并将其重新指向原始的Rhino类,其中'internal '不会对用户隐藏

相关内容

  • 没有找到相关文章

最新更新