有关.classpath文件问题
使用eclipse开发项目时,他会生成一个.classpath文件,这里记录了你项目中所有jar包的路径。现在我想问的是:1,当我把一个项目手动打包成war文件,即在We...
使用eclipse开发项目时,他会生成一个.classpath文件,这里记录了你项目中所有jar包的路径。现在我想问的是:
1,当我把一个项目手动打包成war文件,即在WebRoot下敲jar -cvf test.war *.* 这样打出来的test.war里并没有带.classpath文件,然后复制到webapps下正常运行,他是如何找到这些jar文件所在位置的。
2,如果我的jar包不在本项目中,比如在tomcat的lib下,我又想把我的jar路径指向tomcat的lib里,但此tomcat的路径我又不知道,从程序里可以取到,但我要如何动态修改我的.classpath文件呢,比如<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/FCKeditor-2.3.jar"/>改为:
<classpathentry kind="lib" path="C:/Program Files/Tomcat 6.0/lib/FCKeditor-2.3.jar"/>
请大家帮帮忙,谢谢。
wk,终于发出来了,本来不是0分贴,只是知道扣了我分不给我发贴,最佳答案我会追加50分的,为什么要动态改说来话长,简单一句话我有很多的项目用到了相同的jar包,这些项目会被热部署的,但是就是因为jar包过于多(一个项目大概在25M左右),部署10个左右tomcat就挂掉了,所有现在需要把相同的jar包提出来,达到为项目瘦身的目的,所以我想把所有框架级需要的jar包放到C:/Program Files/Tomcat 6.0/lib下,但是打包成war以后这个.classpath文件并没有被打进war中,也就是说我即使把jar都放到tomcat的lib下,他能通过.classpath文件找的到吗? 展开
1,当我把一个项目手动打包成war文件,即在WebRoot下敲jar -cvf test.war *.* 这样打出来的test.war里并没有带.classpath文件,然后复制到webapps下正常运行,他是如何找到这些jar文件所在位置的。
2,如果我的jar包不在本项目中,比如在tomcat的lib下,我又想把我的jar路径指向tomcat的lib里,但此tomcat的路径我又不知道,从程序里可以取到,但我要如何动态修改我的.classpath文件呢,比如<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/FCKeditor-2.3.jar"/>改为:
<classpathentry kind="lib" path="C:/Program Files/Tomcat 6.0/lib/FCKeditor-2.3.jar"/>
请大家帮帮忙,谢谢。
wk,终于发出来了,本来不是0分贴,只是知道扣了我分不给我发贴,最佳答案我会追加50分的,为什么要动态改说来话长,简单一句话我有很多的项目用到了相同的jar包,这些项目会被热部署的,但是就是因为jar包过于多(一个项目大概在25M左右),部署10个左右tomcat就挂掉了,所有现在需要把相同的jar包提出来,达到为项目瘦身的目的,所以我想把所有框架级需要的jar包放到C:/Program Files/Tomcat 6.0/lib下,但是打包成war以后这个.classpath文件并没有被打进war中,也就是说我即使把jar都放到tomcat的lib下,他能通过.classpath文件找的到吗? 展开
3个回答
展开全部
对于第一个问题,.classpath是eclipse才有的文件,别的IDE可能没有,到Web服务器中进行部署的话,Web服务器是不会用.classpath来查找,应该是通过系统的classpath,WEB-INF下面的classes,以及lib目录下面进行查找(我估计是使用了URLClassLoader类进行类的加载,这里涉及到了java的类加载机制)
第二个问题,我不明白你为什么要动态修改,在eclipse中引用了jar文件,可以不是在Tomcat lib目录中的,只要在运行时能找到这个类就可以了
答复补充:
我感觉eclipse用.classpath仅仅是用来编译,跟最后服务器运行没有关系,我觉得应该是可以的。
如果不行的话,直接放在jre/lib/ext目录下面也可以的
第二个问题,我不明白你为什么要动态修改,在eclipse中引用了jar文件,可以不是在Tomcat lib目录中的,只要在运行时能找到这个类就可以了
答复补充:
我感觉eclipse用.classpath仅仅是用来编译,跟最后服务器运行没有关系,我觉得应该是可以的。
如果不行的话,直接放在jre/lib/ext目录下面也可以的
展开全部
.classpath
文件
源文件的具体位置(kind="src");
运行的系统环境(kind="con");
工程的library的具体位置信息(kind="lib");
在每个lib的xml子节点中,有关于它的其它配置信息;
项目的输出目录(kind="output");
总体上说这个文件就是配置整个工程的运行环境。
文件
源文件的具体位置(kind="src");
运行的系统环境(kind="con");
工程的library的具体位置信息(kind="lib");
在每个lib的xml子节点中,有关于它的其它配置信息;
项目的输出目录(kind="output");
总体上说这个文件就是配置整个工程的运行环境。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.刚才我试了下,如果你的jar是External的,在export成war的时候会把包自动添加到lib中。
2.所以如果你要打成war的话,你不必自己指引什么。如果你非要自己指向,你可以用解析xml。
问题补充:
如果在项目中的lib下找不到,会自动去tomcat的lib下找。刚才我有试,war一样可以找到。
2.所以如果你要打成war的话,你不必自己指引什么。如果你非要自己指向,你可以用解析xml。
问题补充:
如果在项目中的lib下找不到,会自动去tomcat的lib下找。刚才我有试,war一样可以找到。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询