java項目與javaweb項目導入jar包的區別

如今的項目基本上都是java web項目,因此導入jar包會出現問題,主要介紹一下java項目與javaweb項目的區別: java

java項目: web

在classLoader加載jar和class的時候,是分開加載的,通常jar導入分兩種: tomcat

1.在web-inf下的lib中直接引入 服務器

2.在user library上引入 app

不管以上哪一種引入,jar包都能加載而且運行,classLoader會智能加載(本地JRE運行) webapp

javaweb項目; server

不是經過本地的JRE運行的,而是部署到web服務器(好比tomcat,jetty),這些服務器都實現了自身的類加載器. 部署

以tomcat爲例: web服務器

1.common CommonClassLoader class

2.server     CatalinaClassLoader

3.shared    SharedClassLoader

4.webapps webappClassLoader(加載WEB-INF下的jar)

簡單來講,若是作javaweb項目引入jar包的時候,須要將jar包導入到WEB-INF下,這樣服務器就可以加載而且項目跑起來的時候,項目的方法也能夠調用,若是放入到user library中是不能夠的,由於這樣只能本地運行,服務器是加載不到的.因此項目本地調用方法的時候沒有問題,可是服務器跑起來就會報出找不到相應的jar.

(我的觀點)

相關文章
相關標籤/搜索