一.建立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. dpdk在虚拟机上出错处理

    目录 1. 所用系统与软件版本 2. 虚拟机配置 3. Ubuntu 12.04上的配置 3.1 准备 3.2 通过setup脚本进行配置 3.3 通过命令配置 4. CentOS 7.0上的配置 4 ...

  2. CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

    一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...

  3. GNU C 内联汇编介绍

    GNU C 内联汇编介绍 简介 1.很早之前就听说 C 语言能够直接内嵌汇编指令.但是之前始终没有去详细了解过.最近由于某种需求,看到了相关的 C 语言代码.也就自然去简单的学习了一下如何在 C 代码 ...

  4. C++ 中 typename

    声明template参数时, 前缀关键字class和typename可以互换; 使用关键字typename标识嵌套从属类型名称, 但不需在基类列表和成员初始化列表内使用. 从属名称(dependent ...

  5. 关于TP3.2微信开发那点事(基础篇)

    许久没有为博客更新内容,今天我将过去一周做的微信服务号的相关心得体会在此分享,具体如何申请成为服务号的相关流程文档都有,可根据要求完成: 开发第一步:开发前配置: AppID-->微信号的&qu ...

  6. NOIP2006金明的预算方案[DP 有依赖的背包问题]

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今 ...

  7. 查找代码错误.java

    class Other{ public int i; } class Something{ public static oivd main(String[]args){ Other o = new O ...

  8. net面试 ASP.NET页面传值的各种方法和分析 (copy)

    Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题 ...

  9. JSOI Round 2题解

    强行一波题解骗一个访问量好了... http://blog.csdn.net/yanqval/article/details/51457302 http://absi2011.is-programme ...

  10. C# 断点续传原理与实现

    在了解HTTP断点续传的原理之前,让我们先来了解一下HTTP协议,HTTP协议是一种基于tcp的简单协议,分为请求和回复两种.请求协议是由 客户机(浏览器)向服务器(WEB SERVER)提交请求时发 ...