当前位置: 首页 > 知识库问答 >
问题:

将绝对路径中可用的jar文件添加到类路径中

陆曜文
2023-03-14

我正在使用maven构建工具。我的意图是将单独的绝对文件夹[例如:C:\test1.jar,C:\test2.jar]中可用的jar文件添加到类路径中。

<plugin>
 <artifactId>maven-war-plugin</artifactId>
 <version>2.2</version>
 <configuration>
  <archive>
   <manifest>
    <addClasspath>true</addClasspath>         
   </manifest>
   <manifestEntries> 
     <Class-Path>C:/test1.jar, C:/test2.jar</Class-Path> 
   </manifestEntries>
  </archive>
 </configuration>
</plugin> 

我可以看到JAR被添加到war中可用的Manifest.mf文件的类路径中,但当war部署时,它由于“java.lang.ClassNotFoundException”[与test1.jar或test2.jar相关]而失败。

这是否意味着在manifest.mf的类路径中添加的test1.jar和test2.jar没有添加到classpath中,或者我在这里遗漏了什么或错误。

请帮我把绝对路径中可用的jar文件添加到类路径中,方法是使用war文件的Manifest.mf或任何其他方法。

共有1个答案

李经国
2023-03-14

更好的解决方案是将jar添加到maven存储库中,然后像使用普通依赖项一样使用它们。下面是将jar添加到maven repo的命令。

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
    -DartifactId=<artifact-id> -Dversion=1.0 -Dpackaging=jar

然后在pom.xml

<dependency>
    <groupId><group-id></groupId>
    <artifactId><artifact-id></artifactId>
    <version>1.0</version>
</dependency>
 类似资料:
  • 问题内容: 我在上,我尝试了下都无济于事。还尝试将jar移到src目录,但是java文件仍然无法编译。尝试在脚本中简单地导入httpclient。 问题答案: 安装您的JDK并将 其放置 。难道 不是 .jar文件复制到你的JDK的文件夹! 如果您还没有一个IDE,我建议您使用Eclipse或Netbeans这样的IDE。 我将建立一个新项目,创建或导入您的源,并为该项目设置一个类路径。 如果那行

  • 我希望title本身是描述性的,但要明确的是,我试图在greeting-service.jar中包含(即,error-handling-service.jar)。在构建之后,我在新项目(即TestApplication)中包含了greeting-service.jar,但在执行我得到的TestApplication时(顺便说一句,TestApplication不是一个gradle项目) BaseE

  • 问题内容: 在开发Java项目时,我将所有jar文件都放在一个在项目内部创建的文件夹中,称为Now,是否可以将文件夹添加到Java类路径中,而不必添加每个jar文件? 我在考虑变量或创建用户库的思路。 问题答案: 根据您所说的,我可能会创建一个包含您的库JAR的用户库。 您可以使用Window => Preferences创建一个用户库,向下钻取到Java => Build Path => Use

  • 问题内容: 我想在固定位置引用一个jar文件,以供多个可执行jar使用,而不是在每个可执行文件中都包含该jar。我有以下设置可以正常工作 commons- math3-3.6.1.jar存在于目录testgradle中。TestGradle.jar包含main方法,并存在于目录testgradle / build / libs中 从testgradle / build / libs我运行: 一切正

  • 我想引用一个固定位置的jar文件供多个可执行jar使用,而不是在每个可执行文件中包含该jar。我有以下设置工作良好 但是我想用绝对路径来处理commons-math3-3.6.1.jar,以便testgradle.jar这样的可执行JAR可以从它们所在的任何目录中使用它。但是,如果我更改testgradle.jar manifest以包括完整路径: 则命令: 从testgradle/build/l

  • 我正在使用 karaf 4.0.5 和 osgi 进行一个项目。我们有客户端代码来调用 REST API,这需要加载 3 个“*.属性”文件。我得到了一个客户端jar,我用它来调用服务器端类和方法(包含我无法更新的代码)。所需的属性文件存在于提供的客户端 jar 中,但其代码仍无法找到并加载它们。 在调试我的pax考试时,我发现它没有从jar加载资源文件的可能原因如下。 用于加载文件的代码似乎仅尝