【问题标题】:Java NoClassDefFoundError with Google App Engine Project ReferenceJava NoClassDefFoundError 与 Google App Engine 项目参考
【发布时间】:2012-05-21 18:24:33
【问题描述】:

我有一个 Java Google App Engine 项目,它引用了另一个项目中的一个类,在运行时,我得到了 NoClassDefFoundError。

我将把我的 Google App Engine 项目称为“Main”以及它所依赖的项目“Sub

运行时错误的原因似乎是在 WEB-INF/lib 中找不到 Sub 的 jar。在 Eclipse 中,当我将 Sub 导出为 jar 并将其复制到 WEB-INF/lib 文件夹中时,一切正常。我现在每次在 Sub 中更改文件时都需要这样做吗?

来自 Visual Studio 世界,我习惯于将项目构建到 dll 中,并将这些项目复制到依赖于它们的“bin”文件夹中。我认为eclipse会支持类似的东西,但我没有看到它。解决这个问题的正确方法是什么?蚂蚁脚本?

【问题讨论】:

  • 这是一个很好的问题,不知道为什么它没有得到支持。我在我的 App Engine 项目中使用 java.lang.NoClassDefFoundError 收到 HTTP 错误 500,即使 Eclipse 构建良好,但在运行时我的依赖项 .jar 文件似乎没有得到解决。

标签: java eclipse google-app-engine ant


【解决方案1】:

是的 - 当您在 .NET 中看到 .dll 时,想想 Java EE 中的 JAR。

如果依赖的 JAR 发生变化,您必须更新 Web 应用的 WEB-INF/lib 的内容。

我不确定 Eclipse 如何处理依赖关系。在 IntelliJ 中,如果我愿意,我可以在两个单独的模块之间创建依赖关系,或者按照我上面描述的方式处理依赖的 JAR。

我认为最好的办法是使用 Ant 脚本,特别是如果您已经有一个脚本来创建您的 WAR 文件。

【讨论】:

  • 我仍然卡住的地方是生成 jar 的正确方法。目前这是一个手动过程,因此我可能会在编辑器中更改代码,忘记生成/复制 jar,并且在运行时它不会运行正确的代码
  • 有些事情没办法。要有足够的纪律性,以实现“我最好运行 Ant 构建,因为我刚刚对 JAR 进行了更改。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多