Projektstruktur und runnable JAR!

Status
Nicht offen für weitere Antworten.

facilityManager

Aktives Mitglied
Ich suche Informationen darüber, wie *genau* eine runnable JAR intern aufgebaut ist, und worauf es bei der Erstellung ankommt.

In den einschlägigen Büchern gibt es dazu kaum Informationen. Ich muss wissen wie Java-Programme auf andere Systeme verteilt und ausgeführt werden können, ohne das der Anwender die Konsole anfassen muss um das Programm zu starten.
 

facilityManager

Aktives Mitglied
Leider reichen die Infos noch nicht. Kriege es einfach nicht hin eine runnable JAR zu erstellen, welche die Grafiken findet. Meine Projektstruktur ist total simpel.

Es gibt einen bin und einen src Verzeichnisse in Eclipse. In src habe ich pics und sounds (Verzeichnisse). Wenn ich die Verzeichnisse in src packe, geht es nicht. Wenn ich sie in bin packe, geht es. Die Mehrheit der Java-Coder erzählt mir, das sie in src gehören. Dann funzt aber die runnable JAR nicht.

Wenn ich die JAR entpacke und dann mit der Konsole "java MainMethodenKlasse" das Programm starte, geht alles einwandfrei.

Wenn ich in der Konsole aber die MainMethodenKlasse direkt aus der JAR heraus starte, kriege ich eine Fehlermeldung:

Code:
C:\Dokumente und Einstellungen\Ich\Desktop>java -cp SpeesInVeeders.jar GamePan
el
\pics\rocket.gif
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
        at javax.imageio.ImageIO.read(Unknown Source)
        at GamePanel.loadPics(GamePanel.java:175)
        at GamePanel.doInitializations(GamePanel.java:74)
        at GamePanel.<init>(GamePanel.java:67)
        at GamePanel.main(GamePanel.java:53)

Die Fehlermeldung besagt, das der Pfad "\pics\rocket.gif" ins nichts geführt hat, die Datei also nicht gefunden wird!

Das wird wohl ungefähr das gleiche sein, wie wenn ich die JAR per doppelklick auf dem Desktop starte. Dann passiert genau das. Nur wenn ich sie entpacke und direkt die GamePanel Klasse anschmeiße, läuft es.

Oder ich packe die Dateien da hin, wo sie nicht hin gehören, und dann geht es. Aber das kann's ja nicht wirklich sein :)

Das steht in der MANIFEST.MF:

Code:
Manifest-Version: 1.0
Class-Path: .
Main-Class: GamePanel
 
B

Beni

Gast
[Edit: eigentlich wollte ich dieses P.P.S. ja am Schluss, aber da ich damit dieselbe Exception exakt reproduzieren kann...]

P.P.S. ClassLoader benötigt Pfade die mit "/" getrennt sind, nicht mit "\". Ich kann dieselbe Exception mit einem Pfad der fälschlicherweise \ verwendet erzeugen. :bae:



Vielleicht solltest du dein Programm zusammenpacken (bitte zuerst dafür sorgen, dass man sich nicht durch 10000 Klassen wühlen muss) und hier posten. Oben rechts hat es einen Link "Eigene Dateien", da kannst es direkt auf diesen Server werfen.

Ich weiss ja nicht was du sonst noch machst, aber bei mir funktionieren solche Programme problemlos: zum Beispiel dieses hier.

P.S. jar-Dateien solltest du eigentlich mit "java -jar Datei.jar" starten können, den CLASSPATH musst du nicht anrühren.
 

facilityManager

Aktives Mitglied
Nach dem ich die File.separator Konstanten raus geschmissen habe, lief es :autsch: ???:L :lol:

Danke für den Tipp!
Seltsamer weise war ich zu File.separator veranlasst, als mein Programm auf einem Mac nicht anlaufen wollte. Jetzt schnalle ich das mit den URL's. In welchen Fällen ist denn dann ein File.separator nützlich? Wohl dann, wenn man kein URL Objekt benutzt. Auch geschnallt.
 

Wildcard

Top Contributor
solquery hat gesagt.:
Seltsamer weise war ich zu File.separator veranlasst, als mein Programm auf einem Mac nicht anlaufen wollte. Jetzt schnalle ich das mit den URL's. In welchen Fällen ist denn dann ein File.separator nützlich? Wohl dann, wenn man kein URL Objekt benutzt. Auch geschnallt.
Eigentlich nur wenn du unbedarften Windows Usern einen für sie vertrauteren Pfad präsentieren willst, ansonsten /
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
P newbie- Frage zu Ordner-Projektstruktur Java Basics - Anfänger-Themen 3
B Java Dateien zu Projektstruktur addieren Java Basics - Anfänger-Themen 5
berserkerdq2 Größter unterschied von extends thread und implements runnable? Java Basics - Anfänger-Themen 2
C Runnable Jar-File erzeugen Java Basics - Anfänger-Themen 14
topi relativer Pfad in einem Runnable JAR file Java Basics - Anfänger-Themen 12
krgewb Runnable JAR File Export Java Basics - Anfänger-Themen 11
javajoshi Problem mit zwei Threads und Arrays (Runnable) Java Basics - Anfänger-Themen 12
5 Welchen Sinn hat ein Runnable Java Basics - Anfänger-Themen 6
F Bild in ein Runnable Jar File packen (eclipse) Java Basics - Anfänger-Themen 2
G Moving Objects with Threads (implements Runnable) Java Basics - Anfänger-Themen 1
R Compiler-Fehler Runnable-Jar != Eclipse Java Basics - Anfänger-Themen 5
U Externe Library im non runnable jar File im eclipse Java Basics - Anfänger-Themen 1
K Runnable oder Keyadapter läuft falsch Java Basics - Anfänger-Themen 4
T Java Projekt als runnable jar file exportieren inklusive csv Dateien Java Basics - Anfänger-Themen 4
Helgon Unterschied runnable und normale jar Java Basics - Anfänger-Themen 6
Helgon Interface Runnable Frage / Schnittstellen allgemein Java Basics - Anfänger-Themen 3
6 JDK installieren Runnable Jar Files ausführen?! Java Basics - Anfänger-Themen 8
O Erste Schritte Runnable Jar <- Ordner Fehlen Java Basics - Anfänger-Themen 6
Y Threads extends Thread oder implements Runnable Java Basics - Anfänger-Themen 10
V Kein neuer Thread trotz Runnable Java Basics - Anfänger-Themen 4
F Icon der runnable jar ändern Java Basics - Anfänger-Themen 3
W KeyListener auf Applet mit Runnable Java Basics - Anfänger-Themen 4
S Bild-Resource in Runnable Jar Java Basics - Anfänger-Themen 15
T Thread oder Runnable? Java Basics - Anfänger-Themen 3
J new Runnable Java Basics - Anfänger-Themen 4
M FileWriter innerhalb runnable Jar Java Basics - Anfänger-Themen 8
M Jpg und wav datei pfadangabe bei Runnable Jar file Java Basics - Anfänger-Themen 2
? Oracle jpr runnable target Java Basics - Anfänger-Themen 2
R Threads / Interface Runnable Java Basics - Anfänger-Themen 7
A Frage zu Datenzugriff bei new Thread(new Runnable) Java Basics - Anfänger-Themen 8
U Projekt als Runnable Jar exportieren Java Basics - Anfänger-Themen 4
P probleme mir Runnable Jar Java Basics - Anfänger-Themen 5
E Zugriff aus einer Runnable auf die Oberklasse Java Basics - Anfänger-Themen 2
chik Problem mit der Runnable Methode Java Basics - Anfänger-Themen 3
StickToFreak Runnable + KeyListener? Java Basics - Anfänger-Themen 32
S Runnable jar "Could not find main class" Java Basics - Anfänger-Themen 8
F Alternativen zu runnable JAR? Java Basics - Anfänger-Themen 13
F Classpath: Wichtig für Runnable JAR? Java Basics - Anfänger-Themen 2
F Runnable JAR Programm kann nur über Konsole gestartet werden Java Basics - Anfänger-Themen 9
S runnable jar datei sql fehler Java Basics - Anfänger-Themen 5
G Innerhalb von Runnable auf super. zugreifen? Java Basics - Anfänger-Themen 3
S Was ist "Runnable"? Java Basics - Anfänger-Themen 25
Daniel_L Unterschied Thread und Runnable? Java Basics - Anfänger-Themen 8
W Aus einem Runnable-thread auf einen JFrame zugreifen Java Basics - Anfänger-Themen 5
frau-u Interface Runnable - wie funktionierts? Java Basics - Anfänger-Themen 3
S sleep ohne runnable? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben