2017-05-14 23 views
0

我已经创建了与其他外部jar有依赖关系的类文件。我为我的程序生成了一个不可执行的jar文件,我正在使用类加载器来访问我的jar文件中的方法。但是我的调用在依赖jar上的NoClassfoundException失败。相关的jar放在与我正在尝试使用classloader加载的jar文件相同的位置。将外部库与非可执行jar关联

a。还有什么我需要做的关联外部jar文件。 b。是否有任何其他选项可以完成此操作,而无需将我的jar文件转换为可执行jar文件。

回答

0

尝试使用下面的pom.xml其实我用它来制作一个可执行的JAR文件,但我现在修改它非可执行

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.ga</groupId> 
<artifactId>GAChainMR</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>jar</packaging> 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 
<dependencies> 
...... 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 

     <!-- Skip the tests run. --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.15</version> 
      <configuration> 
       <skipTests>true</skipTests> 
      </configuration> 
     </plugin> 

     <!-- Sources generation --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-source-plugin</artifactId> 
      <version>2.4</version> 
      <executions> 
       <execution> 
        <id>attach-sources</id> 
        <phase>verify</phase> 
        <goals> 
         <goal>jar-no-fork</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>3.0.0</version> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
      </plugin> 
    </plugins> 
</build> 

我使用MVN包命令构建JAR和在jar中找到所有的依赖关系,试着让我知道。 为上述pom中的外部罐子添加依赖关系

+0

谢谢。我会试试看,并让你知道它是否起作用 –

+0

是否有效? @SujithShajee –

+0

谢谢。按照您提供的方法,我现在可以继续前进。但我希望找到一个解决方案,它可以帮助我使独立的库独立于我正在构建的jar而不是构建到单个jar文件中?你是否可以这样做? –