繁体   English   中英

java.lang.NoClassDefFoundError:org / apache / poi / ss / usermodel / Row

[英]java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Row

我制作了一个小应用程序,可以从excel(xls文件)中读取内容并将其内容显示到JTable中。 在eclipse中一切正常,但是当我创建jar文件并尝试运行它时,出现以下问题:

java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Row

我发现奇怪的是,问题出在行上,当在行之前调用Workbook和Sheet时,它没有任何麻烦(至少从我的观察中可以看出)。

我已经研究了很多,主要似乎是jar文件不在Class-Path中,但是打开jar和清单文件后,我可以看到所有jar。

Class-Path: poi-ooxml-4.0.1.jar poi-4.0.1.jar commons-codec-1.11.jar commons-collections4-4.2.jar commons-math3-3.6.1.jar commons-compress-1.18.jar curvesapi-1.05.jar poi-ooxml-schemas-4.0.1.jar xmlbeans-3.0.2.jar

这是我的pom.xml文件中的内容:

<build>
 <plugins>
  <plugin>
    <!-- Build an executable JAR -->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
      <archive>
       <manifest>
          <addClasspath>true</addClasspath>
          <classpathPrefix>./</classpathPrefix>
           <mainClass>com.clientdb.classes.DynamicRegForm</mainClass>
         </manifest>
       </archive>
     </configuration>
    </plugin>
  </plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.1</version>
   </dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>

我还尝试下载jar文件并将其添加到项目中,而不是将依赖项添加到pom文件中,并且仍然是相同的错误。 有任何想法吗?

可能仅在运行jar时才得到此信息, 因为依赖项不可用/未打包在其中

尝试生成一个“ fat jar” (也称为uber-jar ),它将所有依赖项打包在jar中:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <finalName>YOUR_JAR_FINAL_NAME</finalName>
            </configuration>
        </plugin>
    </plugins>
</build>

maven-shade-plugin相关的文档可以在这里找到

更新:由于您正在使用可运行的jar文件,因此可以按照与可执行Jar相关的文档的本部分进行操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM