Könnten Sie mir bitte erklären, warum meine JAR-Datei nicht außerhalb des Zielordners ausgeführt wird? Und wie kann ich das unabhängig machen? Kopieren/Einfügen in ein anderes VerzeichnisWie mache ich JAR-Datei unabhängig?
Wenn ich meine jar außerhalb des Zielordners ausführen, wird NoClassDefFound Fehler erzeugt. Das Laden von Gläsern aus Abhängigkeiten ist nicht möglich.
Das ist mein pom.xml:
<properties>
<docx4j.version>3.3.0</docx4j.version>
</properties>
<build>
<plugins>
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.epam.executor.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<!-- Build an executable JAR with runtime dependencies so that this program can be executed from command line using java -jar command -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j</artifactId>
<version>${docx4j.version}</version>
</dependency>
</dependencies>
I mit 3 Parametern mein Glas über diesen Befehl ausführen:
java -jar DocumentTemplate-1.0.jar D:\Trash\xml1.xml D:\Trash\template.docx D:\Trash\results.docx
Meine Vermutung ist, dass Sie 'docx4j' brauchen, also sollten Sie es Ihrem Klassenpfad hinzufügen. Sie haben 'lib /' hinzugefügt und das muss alle Gläser enthalten, auf die Sie angewiesen sind. (Relativ zum Glas) –
Kurz gesagt, wo ist docx4j? und was ist die Fehlermeldung, die Sie bekommen? –