一.建立user library

  导入第三方jar文件,最简单的方式是:右键工程/属性/java build path/add external jars.

  另一种方式是:window/prefrence/java/build path/user lib,新建用户库,可以为其指明jar文件,doc文件,src文件,这么一弄,在编程时就可以按F3查看代码定义了,并且能够鼠标悬停还可查看说明,函数的参数有具体的含义而不是arg1,arg2......

  用user lib的方式,可以使多个工程共享一套第三方库,节省磁盘空间,并且可以配置好user lib,以后用时直接添加user lib就可以查看doc和src。

  这两种方式,其实很像动态链接库和静态链接库。使用动态链接库生成的可执行文件体积小,复用模块多;使用静态链接库生成的可执行文件对外界依赖少,便于移植,但无法进行本地化,一旦更改库,就需要重新编译生成可执行文件。

  当然是建立user lib好,建立一个文件夹,里面放的全是第三方库及其对应的源代码和文档,在eclipse中建立对应的user lib,并绑定源代码和文档。

二.android工程和web工程

  android工程和web工程都有lib目录,只要把jar文件复制到该目录,运行时便会一切正常。无需设置java build path。而设置user lib这种方式就会报错。

  下载完struts并建立user library之后,新建动态网站项目并导入user library,运行web项目无法运行,说类未定义。

  java.lang.NoClassDefFoundError: com/alibaba/fastjson/JSON

  编android时,建立项目并配置好其build path后,欲将其导出为jar文件。设置好了user lib,编译一切正常,只有运行时说找不到泪,可是我眼里都是泪呀。这个问题难了我一个晚上

  Exception in thread "main" java.lang.NoClassDefFoundError

   java.lang.NoClassDefError找不到类定义

  下面说说解决方案。

三.user lib随工程导出

  编译正常,导出之后就会出错:说找不到类定义

  这里的导出包括:导出为jar文件,导出为apk文件

  这是因为依赖库没有导出,右键工程属性在java/buildPath/order and exports中打几个钩就可以了,如果编的是android工程,这么一弄就把user lib打包到了apk,也打包到了jar文件中,总之,这种方法适用于打包输出的情况。

  如果是建立的web工程,上面那种方法就不行了,因为我点的是直接运行,并没有打包成war文件,tomcat说找不到类。那就要右键工程属性在deployment assembly中设置,添加部署到服务器的程序集。如果只是添加user lib,却没有部署到服务器会产生一个警告。你工程上的感叹号可能就是这个原因。

  经过我测试,把struts-all/lib/下的jar全部复制到项目目录下无法运行,把struts-all/apps/blank/lib复制到项目目录下就可以运行。

四.最后

  路径名别有汉语,说不定就出错了,路径名有空格说不定就错了。

  关闭一下,重新启动,说不定就好了

在eclipse中使用第三方库总结的更多相关文章

  1. Android Studio中导入第三方库

    之前开发Android都是使用的eclipse,近期因为和外国朋友Timothy一起开发一款应用,他是从WP平台刚切换使用Android的,使用的开发环境时Android Studio,为了便于项目的 ...

  2. Android中集成第三方库的方法和问题

    Android中集成第三方库的方法和问题 声明: 1. 本文參考了网上同学们的现有成果,在此表示感谢,參考资料在文后有链接. 2. 本文的重点在第三部分,是在开发中遇到的问题及解决的方法.第一,第二部 ...

  3. [学习笔记] 在Eclipse中添加用户库 Add User Libraries ,在项目中引用用户库

    如果还没有安装Eclipse, 则请参考前文:  [学习笔记] 下载.安装.启动 Eclipse(OEPE) 添加用户库 本文主要介绍在项目中直接使用第三方库的情况.就是把第三方的jar文件直接放到某 ...

  4. 详细地jsoncpp编译方法 和 vs2010中导入第三方库的方法

    详细地jsoncpp编译方法 和 vs2010中导入第三方库的方法 一 编译链接 1 在相应官网下载jsoncpp 2 解压得到jsoncpp-src-0.5.0文件 3 打开jsoncpp-src- ...

  5. Java SE Eclipse中引入第三方jar及class

    使用eclipse开发Java SE 总免不了需要引入第三方的jar或者calss文件.这里给大家说一下如何在eclipse中引入第三方jar或者calss文件. 让我们先了解一下eclipse项目中 ...

  6. Eclipse中Android公共库的正确建立及调用方法

    Eclipse中Android公共库的正确建立及调用方法 引言 之前一直头痛于没有办法在多个程序中共享资源,用作公共类库的方法也是使用的导出jar再导入的办法,现在终于初步搞明白了,可算解脱了~,分享 ...

  7. xcode中的第三方库配置问题总结

    xcode中的第三方库配置总结 在导入第三方库的时候,总是会遇到许多的问题.在这里,我记录一下学到的一些知识点.写得比较乱.只要是想要记录下来,在第三方库导入的时候,遇到的一些问题. 参考网址: ht ...

  8. 关于pycharm中安装第三方库时报错的解决办法(一)

    记录自己的生活!   一.事发背景 在pycharm中直接安装第三方库时因为版本问题总是无法安装成功,事情不大,但是很重要.   二.经过 最开始我自己电脑上安装了Python3.6和Python2. ...

  9. json库的编译方法和vs2010中导入第三方库的方法

    json库的编译方法和vs2010中导入第三方库的方法 一.去相应官网下载json.cpp文件 Jsoncpp下载:https://sourceforge.net/projects/jsoncpp/  ...

随机推荐

  1. VC6.0 C++ 如何调用微软windows系统SDK 语音API

    下载3个语音API安装包 http://www.microsoft.com/en-us/download/details.aspx?id=10121 需要安装微软语音API安装包:SpeechSDK5 ...

  2. Bootstrap学习(3)

    Bootstrap 图片  Bootstrap 对图片的支持.Bootstrap 提供了三个可对图片应用简单样式的 class: .img-rounded:添加 border-radius:6px 来 ...

  3. java 自动装箱自动拆箱

    1.Java数据类型 在介绍Java的自动装箱和拆箱之前,我们先来了解一下Java的基本数据类型. 在Java中,数据类型可以分为两大种,Primitive Type(基本类型)和Reference ...

  4. 13款经典BI项目报表&界面风格设计方案

    说明 1.方案取自报表开发工具FineReport案例的配色方案 2.所有设计方案图中已标注了字体.颜色与间隔距离等,可直接调用. 报表&界面风格设计方案展示 灰蓝界面 绿色与金色 蓝绿清新风 ...

  5. MATLAB学习(一)——状态好状态坏,自作自受

    状态不好,学学MATLAB做做准备吧. 一.基本情况 1.1 书写 一行写不下? %可以加上三个小黑点(续行符)并按下回车键,然后接下去再写.例如 s=-/+/-/+/-/+/-…- /+/-/+/- ...

  6. [麦先生]Laravel框架实现发送短信验证

    今天在做到用户注册和个人中心的安全管理时,我借助实现第三方短信平台在Laravel框架中进行手机验证的设置;  由于我们做的是一个为客户提供医疗咨询和保健品网站,所以对客户个人隐私的保护显得尤为重要, ...

  7. NOIP2011多项式系数[快速幂|组合数|逆元]

    题目描述 给定一个多项式(by+ax)^k,请求出多项式展开后x^n*y^m 项的系数. 输入输出格式 输入格式: 输入文件名为factor.in. 共一行,包含5 个整数,分别为 a ,b ,k , ...

  8. java 常见数据类型

    int 4字节 -2 147 483 648-2 147 483 647(正好超过20亿) short 2字节 -32 768-32 767 long 8字节 -9 223 372 036 854 7 ...

  9. 嵌入式Linux驱动学习之路(一)嵌入式系统的软硬件架构

    硬件资料: 操作系统:(非虚拟机) zws@z-pc:~$ lsb_release -aNo LSB modules are available.Distributor ID: Ubuntu Desc ...

  10. JavaScript数组定义

    数组有四种定义的方式 使用构造函数: var a = new Array(); var b = new Array(8); var c = new Array("first", & ...