在何处放置JAR文件以避免冲突?

时间:2012-06-08 16:59:22

标签: java tomcat jar weblogic

Windows XP专业版 WebLogic 11g 雄猫7 JDK 1.6

我一直把补充的JAR文件放在

JAVA_HOME/jre/lib/ext ( a JDK installation )

多年。它比改变我的CLASSPATH更方便,我开发的所有东西都可以在一个地方访问一组东西。

我需要一种不同的或更好的方法。

我最近在我的计算机上安装了WebLogic 11g。由于我不喜欢在我的机器上安装多个JDK或JVM,因此我将JAVA_HOME变量设置为指向那里。

然后我在那里放了一个servlet-api.jar来编译我的webapps。一切都很好。

然后我安装了Tomcat 7. Tomcat 7在CATALINA_HOME / lib中有自己的servlet-api.jar。在CATALINA_HOME / lib中有一个servlet-api.jar,在JAVA_HOME / jre / lib / ext中有一个导致Tomcat 7抛出错误。但是,我需要在JAVA_HOME / jre / lib / ext中编译我的webapps。

有没有比从CATALINA_HOME / lib删除servelt-api.jar更优雅的解决方案?

由于

2 个答案:

答案 0 :(得分:2)

来自Java Tutorial: The Extension Mechanism

  

扩展机制提供了一种标准的,可扩展的方式   Java上运行的所有应用程序都可以使用自定义API   平台。 Java扩展也称为可选包。   这条路径可以互换使用这两个术语。

     

扩展是扩展Java的包和类组   平台通过扩展机制。扩展机制   使运行时环境能够查找和加载扩展类   没有必须在类路径上命名的扩展类。在   在这方面,扩展类类似于Java平台   核心课程。这也是扩展得到他们的名字的地方 - 他们,在   效果,扩展平台的核心API。

     

由于此机制扩展了平台的核心API,应该使用它   明智地应用。最常见的是它很好用   标准化接口,例如Java Community定义的接口   流程,虽然它也可能适用于整个网站   接口

答案 1 :(得分:1)

不要将Jar放在/ext中,而是针对您的实际EE框架进行编译。这样,当您的Tomcat(或其他EE安装)随附的.jar版本发生更改时,您将不会遇到问题。所以不要再将.jar放在ext中,并将构建路径更改为实际的 EE环境。