java项目中,lib中jar包中如出现与src目录下同名同包的java文件,会优先加载运行哪个?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java项目中,lib中jar包中如出现与src目录下同名同包的java文件,会优先加载运行哪个?相关的知识,希望对你有一定的参考价值。

我改了jar包中的源文件,放在src文件夹中,生成了同名同包的文件,所以才会出现这种重复。
我在Eclipse“configuration building path”中设置了src优先,项目发布到服务器后,这个执行顺序还管用么?还是只在MyEclipse中好使。我没分儿了,谢谢热心兄弟的帮助。
在tomcat服务器运行环境中,classes包中和jar包中,出现了同名同包的类,是优先运行哪个呢?

你把jar里的同名文件删除不就好啦。
--------------------------------------
如果是发布到weblogic的话,可以在WebContent\WEB-INF\weblogic.xml里面配置。
参考配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
<container-descriptor>
<!-- 修改JVAV类后不会自动重启 在debug模式下 修改方法内逻辑也不用重启,但是改变方法参数等需要重启才管用 -->
<servlet-reload-check-secs>-1</servlet-reload-check-secs>
<!-- <resource-reload-check-secs>-1</resource-reload-check-secs>
<!-- web-inf/classes里面优于lib加载 -->
<prefer-web-inf-classes>true</prefer-web-inf-classes> -->
</container-descriptor>
<!-- URL根路径 -->
<context-root></context-root>
<jsp-descriptor>
<!-- 查看(调试)JSP编译生成的java源文件 \servers\AdminServer\tmp\_WL_user\webapp\XXX\jsp_servlet\_jsp\_ -->
<keepgenerated>true</keepgenerated>
<!-- 修改JSP后不要重启服务就自动加载-->
<page-check-seconds>1</page-check-seconds>
</jsp-descriptor>
</weblogic-web-app>

-----------------------------------------------------------------
Tomcat启动时classloader加载顺序
Tomcat的class加载的优先顺序一览
1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。
2.环境变量CLASSPATH中的jar和class文件。
3.$CATALINA_HOME/common/classes下的class文件。
4.$CATALINA_HOME/commons/endorsed下的jar文件。
5.$CATALINA_HOME/commons/i18n下的jar文件。
6.$CATALINA_HOME/common/lib 下的jar文件。
(JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却出现找不到JDBC Driver的情况。)
7.$CATALINA_HOME/server/classes下的class文件。
8.$CATALINA_HOME/server/lib/下的jar文件。
9.$CATALINA_BASE/shared/classes 下的class文件。
10.$CATALINA_BASE/shared/lib下的jar文件。
11.各自具体的webapp /WEB-INF/classes下的class文件。
12.各自具体的webapp /WEB-INF/lib下的jar文件。

Tomcat的应该也有相关配置,去别的地方查查看,我这边没有资料
参考技术A 没用了,eclipse你再怎么设置都是开发的环境,而不是发布(运行)的环境
============
tomcat先加载他自己根目录下的lib文件夹中的所有lib,
然后WEB-INF/classes
然后WEB-INF/lib下的jar包

按你的整法是,先加载你自己的class中同名类,然后才是jar包中的。
感觉这样会出错.....
最好别整重名的
参考技术B 改名字啊

以上是关于java项目中,lib中jar包中如出现与src目录下同名同包的java文件,会优先加载运行哪个?的主要内容,如果未能解决你的问题,请参考以下文章

eclipse中怎么在一个已经存在的项目的包中再添加一个包,如图:

使用HttpClient进行Get方式通信(使用HttpGet获取网页数据)

java web项目中lib下导入的包部分没进去Referenced Liberaries 有影响吗?这样能算是包导入得正确吗?

java 怎么读取web jar中的某个配置文件

java调用jar包中的类

java项目中jar包如何放在一个文件夹下