博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaWeb开发必会技巧1——导入jar包
阅读量:5134 次
发布时间:2019-06-13

本文共 2885 字,大约阅读时间需要 9 分钟。

在我们接到项目后,只用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 LibrariesReferenced 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

你可能感兴趣的文章
高并发系统数据库设计
查看>>
LibSVM for Python 使用
查看>>
入坑的开始~O(∩_∩)O~
查看>>
Centos 7.0 安装Mono 3.4 和 Jexus 5.6
查看>>
Windows 7 上安装Visual Studio 2015 失败解决方案
查看>>
iOS按钮长按
查看>>
Shell流程控制
查看>>
CSS属性值currentColor
查看>>
[Leetcode|SQL] Combine Two Tables
查看>>
《DSP using MATLAB》Problem 7.37
查看>>
ROS lesson 1
查看>>
js笔记
查看>>
c风格字符串函数
查看>>
python基础学习第二天
查看>>
java可重入锁reentrantlock
查看>>
浅谈卷积神经网络及matlab实现
查看>>
struts2学习(9)struts标签2(界面标签、其他标签)
查看>>
Android 导入jar包 so模块--导入放置的目录
查看>>
解决ajax请求cors跨域问题
查看>>
Android Studio
查看>>