在我们接到项目后,只用java的类库方法实现客户需求基本上是不可能的事情,这时候我们就要找寻有针对性的工具来帮助,这个行为就是导入jar包。本篇文章将从两个方面展开说明:

1.什么是jar包?

2.导入jar包的两种方式;

(笔者使用的IDE是MyEclipse 2015,本篇不涉及技术)

===============================分割线===============================

1.什么是jar包?

JAR,全称Java ARchive(Java 归档),顾名思义,jar肯定和java有两毛钱关系。jar是一种与平台无关的文件格式,可以将多个文件合成一个文件。透过本质来看:jar文件就是一个zip文件(你可以通过解压方式打开jar文件),它与zip文件的区别在于,jar文件中包含一个META-INF/MANIFEST.MF 文件(通过解压后可以找到),这是jar文件在生成时自动创建的。

说完本质,能不能浅显地解释下jar是个什么东西?通俗来讲,jar包就是一套别人已经写好,然后进行打包后的东西,你可以将jar包引入到你的项目中,然后就可以直接使用这些jar包中提供的工具(比如类和属性以及方法等)。比如我想通过java来对word文档(即docx和doc文件)进行操作,那java类库自带的方法是满足不了我的,于是我会去Google一下可以帮助java操作word文档的工具,又比如我找到了一个叫做Apache POI的工具,它提供的方法完全可以满足我的需求,我就会去找寻它的jar包,将其添加进我的项目,然后我就可以开始使用Apache POI来对word文档进行操作了。

2.导入jar包的两种方式

0)在导包之前有一些我认为需要知道的是IDE提供的视图:这里我打开了两种,记住图标,后面我会把两视图并排(即左右排布)

如果创建项目后没有主动开启两个视图(或不小心关闭了)的话,在Window -- Show View -- Package Explorer开启

展开目录看一下初始工作目录

好了,现在我们可以导入jar包了。

方式一:(建立相对路径链接)

(1)将你需要的jar包文件(以xwork-core-2.3.34.jar为例)复制到项目的WebRoot\WEB_INF\lib路径下

可以看到,当把jar包添加到lib下后,工作目录多了个Web App Libraries,此时只是把jar包复制到项目中,还不能使用。(但也有些IDE会很智能地自动帮你完成第二步,这种情况下就可以使用了)

(2)右击项目名 -- Properties -- Java Build Path -- Libraries -- Add JARs,选中刚刚复制到项目的jar包,确认

这时候可以看到“项目管理视图”多了新增的jar包,而“包管理视图”多了Referenced Libraries。

我们来理解一下Web App Libraries和Referenced Libraries

(1)Referenced Libraries存放的是编译环境下使用的jar包。什么意思呢?打个比方,我使用引入的xwork-core-2.3.34.jar编写完java代码了,在运行前需要将它编译成.class文件吧,于是在编译的时候,使用的就是Referenced Libraries中存放的xwork-core-2.3.34.jar,但是这个jar包只是个“引用”,它的本体在lib下呀,这就是我们在把jar包复制到lib下还需要add jars的原因——不仅要导入,还要配置,才能让它能起作用。

(2)Web App Libraries存放的是运行环境下使用的jar包。就是说,你在运行项目的时候所需要使用的jar包都在这里。其主要作用是在MyEclipse(其他IDE或许没有这个库,如IntelliJ IDEA)导出war包的时候,将其目录下的所有jar包或者项目中的工程引用都导出到WEB-INF/lib文件夹下。再说白一点,就是以便项目拷贝到别人的机子上也能正常运行,所以当别人复制了你的项目到自己的计算机上发现“诶怎么跑不动”的时候,可以试着检查Web App Libraries。

方式二:(建立绝对路径)

(1)右击项目名 -- Properties -- Java Build Path -- Libraries -- Add External JARs,选中想要添加的jar包,打开确认

可以看到jar包已经添加到项目中了,注意:在包管理视图中只有Referenced Libraries,没有Web App Libraries,这意味着什么呢?由于Referenced Libraries指向的路径是本地的jar包,所以在编译时,项目会去引用我本地的jar包,这样的话非常不方便,实践说明:

1.编写一个名为MyServlet的类,让它继承某个类,点击浏览

2.输入ActionSupport,可以看到菜单项栏有ActionSupport类,它是在com.opensymphony.xwork2包下的一个类

3.而com.opensymphony.xwork2包是在我的D:\JavaWeb\SourceCode\xwork-core-2.3.34.jar包中找到的

好的,能通过本地jar包确实能找到这个包里的类,这一步乍看之下很美好没毛病吧,MyServlet类就建立好了

这时候我将xwork-core-2.3.34.jar从D:\JavaWeb\SourceCode挪动到D:\JavaWeb\SourceCode\temp

刷新一下项目就会发现工作目录的jar包不见了,MyServlet.java报错了,提示无法完成com.opensymphony.xwork2.ActionSupport的导入

Properties中的Libraries页也显示jar包异常(其实就是路径改变了,找不到了)

往远了想就是将此项目拷贝到别人的设备上那也是运行不了的。

综上所述,建立绝对路径还真不方便,它每一次改变本地的jar包路径都要再次将其导入项目。

导入jar包实际上就是建立一种链接(相对路径链接 或者 绝对路径链接),并不是单纯的copy式导入。还有其他的导入方式(如用户自定义,Maven管理等)在此不做赘述,技巧还是自己慢慢去摸索更有印象和成就感啦,以上两种方式只是学习初期最常用的两种导入方式,了解原理后多jar包的导入,不同IDE的导入,不同设备的导入都可以轻车熟手啦。

===============================分割线===============================

如有表述不清的内容,请联系我;如有表述错误的内容,恳请友好指出。  ——L.L

转载于:https://www.cnblogs.com/LambertCOL/p/8613169.html

JavaWeb开发必会技巧1——导入jar包相关推荐

  1. Java开发过程中开发工具Eclipse中导入jar包的过程

    欢迎欣赏我的第二篇随笔.我们在创建好一个动态网站项目之后,如果没有部署maven的情况下,你可以按照以下的方法,直接把要用的jar包导入你的工程中,而不用再部署maven. 例如在使用JDBC编程时需 ...

  2. java项目导入包报错_转!java web项目 build path 导入jar包,tomcat启动报错 找不到该类...

    在eclipse集成tomcat开发java web项目时,引入的外部jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环 ...

  3. maven导入jar包步骤

    摘抄地址:http://www.360doc.com/content/17/0705/14/28160904_669065438.shtml 听说maven已近有一段时间了,但是直到今天才搞懂了他的自 ...

  4. 使用maven导入jar包

    我们都经历过自己写代码时有时就要引用一些第三方的jar包,这个我们都会,但在公司里进行团队开发时,是不允许我们自己导入jar包的,是由项目组长之类的统一导入jar包,我们在这里来了解一下这个过程: a ...

  5. java导入包大全_eclipse快速导入jar包的相关操作步骤

    eclipse怎样快速导入jar包呢?熟悉这款软件是非常简单的,今天小编就分享了关于eclipse快速导入jar包,有需要的朋友一起来看看吧! eclipse快速导入jar包的相关操作步骤 方法1·最 ...

  6. eclipse导入jar包_在命令行上操作JAR,WAR和EAR

    eclipse导入jar包 尽管Java IDE和许多图形工具使查看和操作Java归档文件(JAR,WAR和EAR)文件的内容比以往更加容易,但有时我还是更喜欢使用命令行jar命令来完成这些任务. 当 ...

  7. Eclipse下如何导入jar包

    原地址:http://blog.csdn.net/justinavril/article/details/2783182 我们在用Eclipse开发程序的时候,经常想要用到第三方的jar包.这时候我们 ...

  8. eclipse导入jar包的三种方法

    我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式.   1.最常用的普通 ...

  9. Maven导入jar包失败问题,lastUpdated问题解决

    Maven导入jar包问题解决 1.问题来源 2.问题场景和解决方案 2.1.groupId,artifactId和version依赖有问题 2.2.Maven版本问题 2.3.maven仓库设置问题 ...

最新文章

  1. 程序员开发进度太慢被告上法庭!公司索赔90万,拿出百度词条当证据
  2. python whl是什么文件
  3. Web前端开发人员和设计师必读文章推荐【系列九】
  4. 速算C语言程序设计,C语言程序设计课程设计-速算24.doc
  5. 透過proxychains讓不支持代理的程序通過代理上網
  6. JLINK通过SW模式下载程序的方法
  7. 成功解决Exception unhandled OSError cannot open resource File: F:\Program Files\Python\Python36\Lib\si
  8. Array with Odd Sum CodeForces - 1296A
  9. mongoDB的副本机制
  10. AT2305-[AGC010D]Decrementing【博弈论】
  11. linux下如何做ghost,又简单又方便,很实用的方法!!!
  12. 京东到家程序员删库跑路 ! 讲一讲 MySQL 数据备份杀手锏 binlog
  13. 99乘法表java代码递归_Java编写九九乘法表(嵌套循环与递归)
  14. Halcon自定义直线卡尺rake
  15. 对FreeMarker技术的思考
  16. 编程中的幂等性(一):http幂等性
  17. 关于html5毕业论文设计任务书,毕业论文设计任务书(精选多篇)
  18. 汽车租赁系统V2.0
  19. 大学时私藏了哪些工具、网站?在这里共享出来了
  20. 前端性能优化工具waterfall

热门文章

  1. SQL NOTE-VARIABLE
  2. 电脑计算机里怎么找恢复出厂设置,普通电脑怎么恢复出厂设置
  3. tensorflow numpy版本匹配_在Matlab中使用tensorflow (1)
  4. Linux系统下文件与目录操作
  5. gpu跑普通python程序_普通电脑PC怎样跑TensorFlow的GPU模式
  6. 有关 strongSwan 的英文文档
  7. C#中的委托和Java中的“委托”(Java8 lambda表达式)
  8. html5画布作品,10个会让你惊叹不已的HTML5画布(CANVAS)技术应用演
  9. 计算机网络email服务的配置,计算机网络邮件配置实验报告
  10. rtl8812au linux驱动下载,Ubuntu 16.04 安装 rtl8812au系列 (DWA-182) wireless adapter driver