在Tomcat ClassPath中包含外部jar

时间:2011-05-28 18:02:01

标签: java tomcat

在Tomcat中,我想在Web应用程序中使用jar。 jar文件将存在于Tomcat目录之外。

要在jarcat类路径中包含jar文件,我修改了TomcatHome / conf / catalina.properties以包含我的jar文件的绝对路径,如

shared.loader=D:\jaa\MyJarFile.jar

根据链接中的建议,

http://www.mulesoft.com/tomcat-classpath

但它会引发错误,

java.lang.NoClassDefFoundError

我也试过了,

shared.loader=D:\jaa\*.jar

shared.loader=file:\\D:\jaa\MyJarFile.jar

它们似乎都不起作用:(

如果我尝试将jar放在tomcat / lib中,它似乎有效。但我不允许这样做。

请帮我解决这个问题,因为我已经在下周实施了这个问题。

3 个答案:

答案 0 :(得分:10)

我想我自己如何添加tomcat的类路径。而不是编辑catalina.properties,只需使用类路径在Tomcat Bin目录中创建“setenv.sh”,

实施例,

CLASSPATH=D:\jaa\MyJarFile.jar

我刚检查了Tomcat / bin中的catalina.sh,并且在将引导程序设置为类路径时将设置这些classpath变量。

答案 1 :(得分:1)

我使用的是IntelliJ,并且尝试了所有类似的操作:

  1. 使用 Ctrl Alt Shift S (项目设置)并添加mysql-connector.jar的依赖项。没用(唯一有效的是IntelliJ在内部完成代码 正常工作。
  2. mysql-connector.jar添加到a​​pache-home / lib /文件夹。没用。
  3. 包括IntelliJ中来自Maven的mysql-connector.jar。只是没用。

对我有用的东西

mysql-connector.jar文件夹中包含PROJECT/web/WEB-INF/lib文件。

无需在任何地方将其添加为依赖项。只需编译它,它将正常工作。

答案 2 :(得分:0)

我发现自己正在复制额外的JAR,这些JAR应该适用于所有上下文,并且应该进入根加载器,进入以下目录:

 C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib

但这只有在您有权访问此目录时才有可能,但对于所有ISP而言可能并非如此。至少你可以在家里做。

再见