1

Windows XP Pro WebLogic 11g Tomcat 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 和 JAVA_HOME/jre/lib/ext 中有一个 servlet-api.jar 会导致 Tomcat 7 抛出错误。但是,我需要一个 JAVA_HOME/jre/lib/ext 来编译我的 webapps。

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

谢谢

4

2 回答 2

2

来自Java 教程:扩展机制

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

扩展是通过扩展机制增强 Java 平台的包和类的组。扩展机制使运行时环境能够查找和加载扩展类,而不必在类路径上命名扩展类。在这方面,扩展类类似于 Java 平台的核心类。这也是扩展名的由来——实际上,它们扩展了平台的核心 API。

由于这种机制扩展了平台的核心 API,因此应该明智地应用它。它最常用于标准化的接口,例如由 Java Community Process 定义的接口,尽管它也可能适用于站点范围的接口。

于 2012-06-08T17:08:40.130 回答
1

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

于 2012-06-08T17:04:49.020 回答