eclipse helios:tomcat项目 - jar不会被导出或发布。运行时可能会导致ClassNotFoundExceptions

时间:2010-11-23 07:58:43

标签: java eclipse netbeans

我正在使用Eclipse Helios,我想知道如何将库项目添加到我的文件夹中,该文件夹将被复制到我编译的项目所在的构建目录中。

目前我做了以下事情:

  1. 在项目的根目录中创建了一个lib目录
  2. 将相关的罐子复制到该目录
  3. 我的项目 - >属性 - > Java构建路径 - >添加罐子,我添加了该目录中的所有罐子。
  4. 添加所有jar后,我收到了关于每个jar文件的以下警告:

    jar will not be exported or published. runtime ClassNotFoundExceptions may result
    

    首先,我如何添加罐子的目录而不是单个罐子? 第二个问题是如何在编译应用程序时正确部署库?!

3 个答案:

答案 0 :(得分:10)

在日食Junu:

在web项目中,将jar添加到构建路径后, 必须将其添加到

Deployment Assembly

(在项目属性中)

将jar添加到"部署程序集"按添加按钮并选择

Java Build Path Entry

(而不是其他工作区或文件系统选项)

答案 1 :(得分:5)

可以是:

  

您可以切换到导航器视图,右键单击刷新项目,确保它不在LIB目录中,   然后尝试将JAR拖放到lib目录中,看看它是否显示出来。

  

当您完全控制Web容器/应用服务器时,部署jar文件就像将文件夹放在公共lib文件夹中一样简单。
  如果您不将您的网络应用程序打包为war文件,那么它就更容易了,因为您只需将广告连播放入网络应用程序的WEB-INF/lib文件夹中。
  但是,如果您无法完全控制您的Web服务器或应用程序服务器,那么您唯一的选择就是将您用过的war文件打包为war文件。

     

使用我最近开发的实用程序(jar文件)开发Web项目时,遇到NoClassDefFound错误。当然,很明显我找不到我在我的网站项目上制作和使用的jar文件(在CLASSPATH中看不到)。
  将jar添加到构建路径只会消除编译问题。将jar文件拖到Eclipse工作区的lib文件夹中并不是一个好主意   在我找到解决方案之前花了几个小时:

     
      
  1. 右键单击您的网站项目
  2.   
  3. 单击“属性”
  4.   
  5. 选择J2EE模块依赖关系
  6.   
  7. 单击“Web库选项卡”
  8.   
  9. 添加外部jar(如果jar在项目之外)。将在Jar/Module下添加一个条目,确保您单击复选框(选中)。
  10.         

    一切都应该没问题。我尝试导出到war文件,然后检查内容,我的jar文件确实部署了战争。

  • 项目配置问题

OP ufk在评论中提及:

  

我通过以下方式解决了这个问题:

     
      
  • 在“java构建路径”中添加“Web App Libraries”库
  •   
  • 将所有相关的广告加入WebContent/WEB-INF/lib
  •   

答案 2 :(得分:0)

我遇到了同样的问题,比如每当我将我的网络应用程序导出为war文件时,外部添加的jar文件都没有包含在app / lib目录中,导致部署期间出现异常。

您必须切换导航器视图,右键单击刷新项目,确保它不在LIB目录中(但在项目文件夹中)

然后尝试将JAR拖放到lib目录中,看看它是否显示出来。