在使用eclipse导入外部jar包时,经常使用Add User Libarary的方式,采用这种方式,外部的jar包没有直接添加到WEB-INF/libs下,那这些jar是在哪里引入的呢?
使用外部jar,可以放置在classpath下使用,在当前web目录下可以找到.classpath文件,打开如下:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/common-logging"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/Spring"/>
<classpathentry kind="output" path="bin"/>
</classpath>
这里只引入了两个Libarary:Spring、common-logging。从上可以看到,这里只是user Libarary名称,那真正的引入那些jar的路径在哪呢?
在{workspace}.metadata.pluginsorg.eclipse.core.runtime.settings的org.eclipse.jdt.core.prefs文件下,可以找到如下内容:
org.eclipse.jdt.core.userLibrary.Spring=XXX
org.eclipse.jdt.core.userLibrary.common-logging=XXX
XXX这里才是对应的jar在硬盘中的实际地址。当前workspace下的其它项目也就可以直接引用相应的user Libarary了。
以common-logging为例,去掉 、 等转义字符之后,如下:
<?xml version="1.0" encoding="UTF-8"?>
<userlibrary systemlibrary="false" version="2">
<archive path="D:/javaWebAPIs/log/commons-logging-1.2.jar"/>
</userlibrary>
archive 节点的path是jar包对应的硬盘位置,若有多个jar,这里就会有多个archive节点