Ich habe Klassen mit XMLBeans aus einer xsd-Datei generiert und in eine jar-Datei gepackt. dann habe ich dieses jar dem klassenpfad des projekts in der eclipse hinzugefügt und alles kompiliert und läuft gut. Ich habe eine Standalone-JAR-Datei von meinem Projekt mit Maven erstellt und wieder ist der Build erfolgreich, aber wenn ich versuche, es auszuführen, erhalte ich diesen Fehler:
%Vor%Die fehlende Klasse befindet sich in dem Jar, das ich mit XmlBeans erstellt habe. Wie sage ich Maven, um es zu dem Jar hinzuzufügen, das es aus meinem Projekt erstellt?
Stellen Sie in Ihrer generierten JAR-Datei sicher, dass Sie die von Ihren XML-Beans erzeugten Klassendateien eingefügt haben.
Vom Stapel:
%Vor%es schlägt vor, dass während der Kompilierungszeit die erforderlichen Klassendateien im Klassenpfad sind, aber in Ihrem eingebauten Jar fehlen diese Dateien.
Überprüfen Sie Ihre JAR-Datei, um zu sehen, ob diese Klassen vorhanden sind.
EDIT: Wie pro Frage umformuliert
Zum Erstellen von jar mit Abhängigkeiten in Maven verwenden Sie jar-with-dependencies
option, Beispiel
Zwei sehr gute Referenz:
In der zweiten brauchen Sie keine Hauptklasse, wenn Ihr Jar kein ausführbares Jar ist
Wenn Sie diese Art von Fehler haben Die TypeSystemHolder.class, die von WSDL2Java generiert wird, wird nicht in Ihrem Klassenpfad platziert, um diesen Fehler zu vermeiden.
Kopieren Sie TypeSystemHolder.class aus dem Ordner "resource / schemaorg_apache_xmlbeans / system / s68C41DB812F52C975439BA10FE4FEE54".
Und fügen Sie TypeSystemHolder.class Datei in Ihren Klassenpfadordner (build / classes / schemaorg_apache_xmlbeans / system / s68C41DB812F52C975439BA10FE4FEE54) Ordner
einBeim Ausführen von WSDL2Java wird ein Verzeichnis namens resources erstellt. Kopieren Sie die schemaorg_apache_xmlbeans, die unter Ressourcen angezeigt wird, zum Klassenpfad Ihres Projekts. Dies sollte die Lösung sein.
Extrahieren Sie das JAR, in das Sie den schemaorg_apache_xmlbeans
-Ordner einfügen möchten.
Kopieren Sie den Ordner schemaorg_apache_xmlbeans
im extrahierten Ordner (Ergebnis der JAR-Extraktion).
Öffnen Sie die Eingabeaufforderung im extrahierten Ordner.
Erstellen Sie erneut jar mit dem Befehl jar cf. z. B. jar cf test.jar *
,
um alle Ordner einzuschließen.
Stellen Sie dieses jar bereit.