Jar mit Zusatz-Libraries

Status
Nicht offen für weitere Antworten.

wildbret

Aktives Mitglied
Hallo,

ich habe ein Problem damit mein Programm als Jar-File ordentlich zum laufen zu bringen.
Viele Stunden Forum lesen und googeln haben mir nicht geholfen.

Mein Programm benötigt 2 Libraries, die nicht standardmäßig mitgeliefert werden.
hsqldb.jar
RXTXcomm.jar

Eclipse-Projektordner: PostProcessing
package: PostProcessing
Ich habe im Projektverzeichnis den Ordner lib erstellt und die beiden Bibliotheken dort platziert.

Mein manifest:
Code:
Manifest-Version: 1.0
Class-Path: lib\RXTXcomm.jar lib\hsqldb.jar
Main-Class: PostProcessing.StartGUI

So sieht die Struktur des Jar-Files aus, wenn ich mal mit Winrar reinschaue


Ergebnis: Das Programm läuft auf meinem PC, auf dem die beiden Libraries aber installiert sind.
Auf einem anderen PC, der nur die Standard-Java-Installation hat bekomme ich dann Fehlermeldungen wenn während der Laufzeit die beiden Bibliotheken benötigt werden.

Ich habe unzählige Tips ausprobiert, die libraries an zahllosen Stellen ausprobiert, nie hat es am zweiten PC funktioniert.

Wäre sehr dankbar für eure Hilfe.
 

wildbret

Aktives Mitglied
Ach so hasst du das in dem anderen Thread gemeint (den ich übrigens schon gelesen hatte), den lib Ordner außerhalb des JAR-Files, also quasi auf der gleichen Ebene.

so z.b.?
C:\Test\lib und C:\Test\test.jar

Manifest-Version: 1.0
Class-Path: lib\RXTXcomm.jar lib\hsqldb.jar
Main-Class: PostProcessing.StartGUI

Die Bilder zeigen was ich in den Eclipse Dialogen ausgewählt habe:







Ergebnis: Geht wie gewohnt auf dem PC, auf dem die libs im lib/ext Ordner liegen.
Geht nicht auf dem PC mit Standard Java-Libraries.
 

wildbret

Aktives Mitglied
Habe jetzt noch Versucht die zu RXTXcomm.jar gehörenden DLLs in das LIb-Verzeichnis zu kopieren was leider auch nicht hilft.

DLLs in \Windows\System: Hat nicht geholfen.
DLLs in \Windows\System32: Mit dieser Maßnahme scheint es zu gehen, aber wenn ich mein Programm auf einem fremden PC zu demonstrationszwecken laufen lassen will, dann kann ich doch nicht zuerst DLLs dessen System32 Ordner kopieren.

Schade, dass die Path-Angabe im Manifest nicht auch für die DLLs glt :(
 

parabool

Bekanntes Mitglied
oder du gibst die dlls als parameter beim starten des Programmes mit (-Djava...wie im anderen Thread).
(Also die dlls ins lib)

Dann könntest du das jar-file über eine Batch-Datei starten.
 

wildbret

Aktives Mitglied
Ich danke dir für deine Hilfe, habe es jetzt wie du gesagt hast mit einer bat-Datei zum Starten der Jar-Datei gemacht.

Mein Programm verwendet eine Datenbank, die ich auch schon über eine bat-Datei starte.
Nun sind halt permanent 2 Command-Fenster offen, nicht schön aber funktioniert vorübergehend.
Vielleicht fällt mir bis zur Abgabe der Arbeit noch eine Möglichkeit ein, die beiden Fenster los zu werden.

Am liebsten wäre mir natürlich wenn mein Programm auf jedem PC laufen würde, unabhängig davon, ob darauf Java installiert ist oder nicht.
Aber nach allem was ich bisher darüber gelesen habe ist das weder einfach noch zu empfehlen und da ich für die Arbeit nicht unendlich viel Zeit habe und solche Kleinigkeiten auch nicht bewertet werden, lass ich es erstmal bleiben.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben