我有一个Maven项目,我使用Aspose单元来操作xlsx文件。Aspose是通过POM配置的。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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">
[...]
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>22.6</version>
</dependency>
</dependencies>
现在,当我将项目作为Java应用程序进行测试时,没有错误。代码成功运行,但是当我执行生成的JAR时,我得到了以下结果:
descrizione sconto
descrizione
codice sconto
Exception in thread "main" java.lang.NoClassDefFoundError: com/aspose/cells/SaveOptions
at src.main.java.MainClass.main(MainClass.java:44)
Caused by: java.lang.ClassNotFoundException: com.aspose.cells.SaveOptions
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 1 more
前三行是项目的控制台输出,也会创建输出文件,但是会出现错误。
我使用的是IntelliJ IDEA,Java版本: JDK17.0.2,Maven版本: Maven 3.8.1
发布于 2022-06-28 16:06:32
我通过更改pom.xml中的构建来解决这个问题。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>eu.tvrsier.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>jar-with-dependencies</descriptorRefs>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.8</version>
<executions>
<execution>
<!-- Default configuration for running with: mvn clean javafx:run -->
<id>default-cli</id>
<configuration>
<mainClass>eu.tvrsier.MainClass</mainClass>
<launcher>app</launcher>
<jlinkZipName>app</jlinkZipName>
<jlinkImageName>app</jlinkImageName>
<noManPages>true</noManPages>
<stripDebug>true</stripDebug>
<noHeaderFiles>true</noHeaderFiles>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
在这些更改之前,我创建了一个包,所以我在工件ID中使用了maven-plugin而不是maven-程序集插件,并且我还添加了执行块。
https://stackoverflow.com/questions/72783584
复制相似问题