分别通过【buildpath】和【lib】倒入JAR包有什么不同
我们可以通过java虚拟机的类加载器来理解。
通过buildpath设置(或添加)程序使用jar包的classpath。
Java虚拟机是根据Java ClassLoader(类加载器)决定如何,到那里去加载Class
=================================================
我们之所以把jar包放在classPath下,是因为存在ClassPath ClassLoader
我们之所以可以不再ClassPath指定一些Jar包,但在Java程序中也能使用。
那是因为有 Root ClassLoader(由C++编写)
我们之所以把Jar包放入webroot下的lib文件夹,并且可以在我们的程序中使用,那是容器实现了自己的ClassLoader。
=============================
所以说能不能加载Jar,加载哪里的Jar,是根据ClassLoader决定的。
系统默认提供了3个ClassLoader
Root ClassLoader -> ClassPathLoader -> ExtClassLoader(用于加载Java虚拟机ext目录下的Jar)
当然我们也可以编写自己的ClassLoader,去加载特定环境下的Jar文件。
=================================
你可以去看看ClassLoader的相关介绍(想深入了解java虚拟机的话)。
================================
Eclipse只是一个开发工具,至于采用导入方式Copy Jar包,还是采用,手动Copy到webroot\lib目录下,都是一样的。
因为如果你做的是WEB开发的话,不管你是采用Eclipse导入方式还是采用手动拷贝的方式,最后那些Jar都会被放在webroot/lib目录下。
当然利用Eclipse去导入Jar包也有一些要注意的地方,比如Eclipse下方会有英文的提示信息"是否将Jar包拷贝到WebRoot/Lib"下,如果没有选中,
你会惊讶的发现我的程序也能运行。。。
这是因为Eclipse在这种情况下,自动将这个Jar包设置成ClassPath形式了。
如果换一台机器,你的程序就不能运行了。原因很简单,
因为不是所以机器都有ClassPath的。也更不会像Eclipse那样,自动的为为程序在启动前设置Jar的ClassPath。
分别通过【buildpath】和【lib】倒入JAR包有什么不同的更多相关文章
- 如何正确在IDEA 里maven构建的项目中引入lib的jar包(图文详解)
不多说,直接上干货! 问题详情 以下是我,maven构建出来的最新spark2.2.0-bin-hadoop2.6的项目. 有些依赖包,maven还是无法一次性满足,所以,得手动加入lib的jar包. ...
- 如何正确在IDEA 里非maven或非SBT构建的项目中引入lib的jar包(图文详解)
以下是我,手动的一个项目 假设,大家,还需要导入 导入spark的jar包:是安装主目录下的jars所有jar包和examples/jars包.
- java bulid path 和 WEB-INF/lib 下jar 包区别
用Java Build Path导入包和把包复制到lib下是有区别的,它俩其实不会冲突,也没有什么关系的, Java Build Path是我们编译需要的包, 导入到lib下是程序运行时需要的包 , ...
- 解决 eclipse buildpath的jar包不能复制到tomcat lib下的问题
环境: Eclipse 版本 Mars. 问题描述: Eclipse 开发的JavaWeb项目,通过buildpath的引入的jar包无法发布到tomcat对应应用的Lib 下. 解决办法: 1. 手 ...
- maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理
MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary ...
- Java-Maven(九):Maven 项目pom文件引入工程根目录下lib文件夹下的jar包
由于项目一些特殊需求,pom依赖的包可能是非Maven Repository下的包文件,因此无法自己从网上下载.此时,我们团队git上对该jar使用. Maven项目pom引入lib下jar包 在ec ...
- Eclipse部署时项目中依赖的jar包不能部署到服务器WEB-IN下lib目录
转: Eclipse部署时项目lib下jar包不能部署到服务器WEB-IN下lib目录及Eclipse下tomcat服务器配置修改 2018年04月07日 11:04:19 拾悦酒吧 阅读数 1046 ...
- maven加载jar包配置
maven build时报程序包不存在和找不到符号的错误,但是代码中不报错,如下: [ERROR] Failed to execute goal org.apache.maven.plugins:ma ...
- servlet相关 jar包位置 BAE上部署web应用
1手动编译servlet工程: 要编译servlet,则类路径classpath中必须包括Servlet API 的相关类,如果使用的web容器是Tomcat,则这些类通常封装在在tomcat的lib ...
随机推荐
- 【mysql】Innodb三大特性之insert buffer
一.什么是insert buffer insert buffer是一种特殊的数据结构(B+ tree)并不是缓存的一部分,而是物理页,当受影响的索引页不在buffer pool时缓存 secondar ...
- Apache-一个IP多个主机域名
#配置虚拟主机名 NameVirtualHost 192.168.209.128 <VirtualHost 192.168.209.128> DocumentRoot /htdocs/wi ...
- logback+slf4j作为日志系统
一.logback简介 log4j和logback作者是同一人:CekiGülcü.log4j和logback都是实打实的日志系统. commons-logging,slf4j这两者是日志大管家.sl ...
- CSS:使用CSS3将一个div水平和垂直居中显示
使用css3将一个div水平和垂直居中显示 方案一: div绝对定位水平垂直居中[margin:auto实现绝对定位元素的居中], 代码两个关键点:1.上下左右均0位置定位: 2.margin: au ...
- &&和;和||符号的意思
http://www.cnblogs.com/xuxm2007/archive/2011/01/16/1936836.html在命令行可以一次执行多个命令,有以下几种: 1.每个命令之间用;隔开 ...
- Google map API V3
本文主要总结Google map API V3使用中最简单也是最常见的一些操作以及相关概念,如果需要更加详细的信息,请直接阅读Google提供的关于map的文档. google map api v3文 ...
- Axure多人协作
这几天搞<材料採购系统>需求.我们组须要分模块画模型图,可是假设每一个人各自画各自的,最后整合,这样就太麻烦了.小左说Axure能够实现多人协作,于是我就研究了一下.我们组已经在用了.以下 ...
- C++第15周(春)项目2 - 用文件保存的学生名单
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 本程序中须要的相关文件.请到http://pa ...
- Intelligence System (hdu 3072 强联通缩点+贪心)
Intelligence System Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- ISCC2014-reverse
这是我做reverse的题解.在咱逆向之路上的mark一下,,水平有限,大牛见笑. 题目及题解链接:http://pan.baidu.com/s/1gd3k2RL 宗女齐姜 果然是仅仅有50分的难度, ...