多么痛的领悟!关于开发和部署时jar包的问题

来源:互联网 发布:李白 李贺 知乎 编辑:程序博客网 时间:2024/05/18 03:38

JDK中java包的问题:java包是由jvm虚拟机加载的--classLoader  

系统默认提供了3个ClassLoader 

Root ClassLoader (加载java默认的系统jar包)-> ClassPathLoader(通过路径classthpath加载jar包) -> ExtClassLoader(用于加载Java虚拟机ext目录下的Jar)

当使用IDE开发环境时jar包的问题:

开发过程-编译:当使用import导入相应的包时,这时会查找相应的jar包。如果不存在就需要导入jar包。

一般的IDE都是通过build  path添加外部的jar包,这种添加方法只是添加了包的路径,在工程的目录下会有  .classpath文件这里记录了所有的包路径。

当将一个工程copy到另一台电脑时,此时.classpath记录的还是之前的路径,就会出现classnotfound错误,需要重新的导入包的位置,编译。

还有IDE一般是自带JDK的所以这就可能与本机安装的JDK出现版本的冲突,类的支持不一样,所以需要进行JDK的选择。


如果在工程中创建lib目录,把所需要的外部包放在这个目录下,这样即使,换台电脑也不会出现包缺少的问题。

还有在web-inf下lib中的包java是访问不到的,所以必须导入才行,只要在java文件中需要的包都需要导入


部署WEB项目到服务器的过程:

在编译的时候使用的是导入的包,但是当部署到服务器上是,服务器是从WEB-INF目录下的lib目录下去查找相应的包的,

所以即使编译通过,已经导入外部的包,还是会出现classnotfound错误,就是因为lib目录下不存在相应的包,

所以,编译通过-必须导入外部的包,当部署到项目时,必须把相应的包手动拷贝到,WEB-INF   -> lib目录下,这样才能

部署成功


lib中的包是在部署时才使用的包,这里的包一般都是在配置文件中需要使用的包例如.xml配置文件等等








1 0
原创粉丝点击