JAR-Datei ist nur an einer Stelle im Dateisystem ausführbar

Status
Nicht offen für weitere Antworten.

Mork0075

Aktives Mitglied
Hallo ich nochmal

Hab mein Projekt nun mit FAT Jar Exportiert aber ich kann es nur dort mit Doppelklick starten dort wo es Fat Jar exportiert hat. Kopier ich es an eine andere Stelle dann kommt Fatal Exception - will exit. Was mache ich nur falsch?
 

Mork0075

Aktives Mitglied
Hab ein Manifest.txt und ein MANIFEST.MF im Projekt.

Sieht so aus

Manifest-Version: 1.0
Main-Class: Main

Meine benötigten SWT Jars hab ich mit im Projekt drin.
 

Bleiglanz

Gesperrter Benutzer
wenn du mit "java -jar foo.jar" starten willst, dann wird schon die im Manifest angegebene main-Methode aufgerufen. Jetzt denk mal drüber nach, wie der classpath aussieht?

nimm eine MANIFEST.MF etwa so
Manifest-Version: 1.0
Main-Class: MeineMain
Classpath: Andere.jar NocheineBib.jar
 

Mork0075

Aktives Mitglied
Das ist zum verrückt werden. Ich hab nun die manifest angepasst aber es geht immer noch nicht. Kann ich einem von euch mal das jar schicken damit er sich es anguckt. Wenn ich einmal verstanden hab was zu machen ist, dann kann ich es bei den nächsten 1000 die ich produiziere sicher selber.

Danke schonmal :)
 

Mork0075

Aktives Mitglied
Wenn ich das mach kommt:

D:\>java -cp eggTimer.jar Main
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3062 in
java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1403)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:832)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:100)
at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:18)
at org.eclipse.swt.graphics.Device.init(Device.java:564)
at org.eclipse.swt.widgets.Display.init(Display.java:1780)
at org.eclipse.swt.graphics.Device.<init>(Device.java:100)
at org.eclipse.swt.widgets.Display.<init>(Display.java:355)
at org.eclipse.swt.widgets.Display.<init>(Display.java:351)
at Gui.<init>(Gui.java:45)
at Main.main(Main.java:22)
 

thE_29

Top Contributor
naja, dann machst du java -cp swt.jar;eggTimer.jar Main

er findet einfach deine swt .jar nicht, weil du die brauchst um swt dinge laufen zu lassen!
 

Mork0075

Aktives Mitglied
Nun findet er die ine swt dll nicht. Wie zum Teufel kann ich das alles zusammen machen um es nur mit Doppelklick auf die jar starten zu könen? :)

Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3062 in
java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1403)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:832)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:100)
at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:18)
at org.eclipse.swt.graphics.Device.init(Device.java:564)
at org.eclipse.swt.widgets.Display.init(Display.java:1780)
at org.eclipse.swt.graphics.Device.<init>(Device.java:100)
at org.eclipse.swt.widgets.Display.<init>(Display.java:355)
at org.eclipse.swt.widgets.Display.<init>(Display.java:351)
at Gui.<init>(Gui.java:45)
at Main.main(Main.java:22)
 
R

Roar

Gast
grml du siehst doch wo das problem ist: du musst die dll in das verzeichnis schieben welches in der systemproperty lava.library.path steht.

am besten du setzt ganz am anfang deines programms diese property auf ".", dann solltest du die dll einfach im gleichen vereichnis wie die jar haben können.
 

Mork0075

Aktives Mitglied
Oh ich bin verzückt :D Wenn ich es auf gleiche Ebene lege wie das jar dann klappts. Aber dann hat der User ja 2 Dateien wobei er denkt mit der einen nix anzufangen weiß. Kann ich die dich irgendwie mit ins machen und dann einen entsprechenden vermerk im manifest oder so?
 

thE_29

Top Contributor
mh, gute Frage
probier im Classpath zu sagen (im Manifest)

eggTimer.jar/deinedll

vielleicht gehts ja!
 

Mork0075

Aktives Mitglied
Nein so klappts nicht. Weiß jemand anders wie ich diese dll im jar lassen kann und event über das Manifest bekannt machen kann?
 

Bleiglanz

Gesperrter Benutzer
oops, sorry, war nicht mehr dabei :)

Scheinbar gehts nicht so einfach - man muss das Ding wohl oder übel installieren (beim Programmstart)

1. aus dem Jar holen mit .getClass().getResourceAsStream("/meine/imjar/foo.dll");

2. und dann als Datei kopieren an den richtigen Ort

wirft aber wohl Sicherheitsfragen auf?
 

Mork0075

Aktives Mitglied
Ok

Ich wollt es eben mit der Methode copy machen. Als InputStream hab ich getClass().getRessourceAsStream("bla.dll");

Aber wie kann ich nun den OutputStream raus bekommen? Der muss ja die URL vom Inputstream haben, allerdings eine Ebene höher. Denn die dll soll ja aus dem jar in das gleiche Verzeichnis des jars
 

thE_29

Top Contributor
Code:
InputStream in = getClass().getResourceAsStream("dll");
    String strFile = System.getProperty("user.dir"); //holt sich das aktuelle Verz
    strFile = strFile.endsWith(File.separator) ? strFile : strFile + File.separator;
    try{
      OutputStream out = new FileOutputStream(new File(strFile + "dll"));
      int x = -2;
      while ( (x = in.read()) != -1)
        out.write(x);
      in.close();
      out.close();
    }
    catch(Exception ex)
    {
      ex.printStackTrace();
    }
dll ersetzt du gegen den namen! sollte eigentlich funktionieren
 

Mork0075

Aktives Mitglied
Das kommt als Fehler

java.lang.UnsatisfiedLinkError: F:\Coding\eclipseWorkspace\EierUhr\swt-win32-3062.dll: %1 ist keine zulässige Win32-Anwendung
 

thE_29

Top Contributor
komisch komisch!
lass dir die Daten mal binär vergleichen, vielleicht vergisst er 1 Byte zu schreiben ^^
 

Mork0075

Aktives Mitglied
Wie bitte was? :)

Ich hab deinen Code in eine Klasse bzw in den Konstruktor einer neuen Klasse gesetzt und erzeuge nun in Main eine neue Instanz von dieser Klasse. Das ist doch richtig oder?
 

thE_29

Top Contributor
huha!

hast das vielleicht komprimiert?

es könnte ja sein das er irgendwas net schreibt, hast du keinen filecomparer? ;)


ansonsten probier das mal
Code:
String strDir = System.getProperty("user.dir");
    strDir = strDir.endsWith(File.separator) ? strDir : strDir + File.separator;

    try{
      JarFile jar = new JarFile(strDir + "thE_Configurator.jar");
      InputStream in = jar.getInputStream(jar.getEntry("README"));
      OutputStream out = new FileOutputStream(new File(strDir + "README.TXT"));
      byte[] buffer = new byte[1024];
      for (int n; (n = in.read(buffer)) != -1; out.write(buffer, 0, n))
        ;
    }
    catch(Exception ex)
    {
      ex.printStackTrace();
    }
 

thE_29

Top Contributor
also statt thE_configurator.jar deinpackage.jar

und statt README deine dll und statt README.txt auch deine dll ;)
 

Mork0075

Aktives Mitglied
Code:
java.util.zip.ZipException: Das System kann die angegebene Datei nicht finden
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:112)
	at java.util.jar.JarFile.<init>(JarFile.java:117)
	at java.util.jar.JarFile.<init>(JarFile.java:55)
	at CopyDLL.<init>(CopyDLL.java:33)
	at Main.main(Main.java:24)
java.lang.UnsatisfiedLinkError: F:\Coding\eclipseWorkspace\EierUhr\swt-win32-3062.dll: %1 ist keine zulässige Win32-Anwendung
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1473)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1397)
	at java.lang.Runtime.loadLibrary0(Runtime.java:788)
	at java.lang.System.loadLibrary(System.java:832)
	at org.eclipse.swt.internal.Library.loadLibrary(Library.java:100)
	at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:18)
	at org.eclipse.swt.graphics.Device.init(Device.java:564)
	at org.eclipse.swt.widgets.Display.init(Display.java:1780)
	at org.eclipse.swt.graphics.Device.<init>(Device.java:100)
	at org.eclipse.swt.widgets.Display.<init>(Display.java:355)
	at org.eclipse.swt.widgets.Display.<init>(Display.java:351)
	at Gui.<init>(Gui.java:45)
	at Main.main(Main.java:26)
Exception in thread "main"

Das klappt irgendwie alles nicht. So langsam glaub ich, ich pack das jar und die dll in einen zip Datei die der User dann entpacken muss. Anders scheints nicht zu klappen :(
 

thE_29

Top Contributor
poste die Fehlerzeile, du wirst dich verschrieben haben beim dll raussuschen!

es liegt doch im root verz oder?
 

Mork0075

Aktives Mitglied
JarFile jar = new JarFile(strDir + "eggTimer.jar");

Das ist die Fehelerzeile und mein jar was starte heißt eggTimer.jar

Die dll leigt im Root des jars
 

thE_29

Top Contributor
mh, ich glaub schön langsam dass das strDir falsch ist, weil du es irgendwie falsch (oder von wo anderst) aufrufst
ich dachte du stehst immer im verz wo du es aufrufst!

schreib dort mal den vollständigen Pfad für dein jar file rein und wenn es geht, probier nur eggtimer.jar reinschreiben!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
B Popups mit Klicksabfangen zumAusfüllen einer .ods Datei Java Basics - Anfänger-Themen 0
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
J int innerhalb einer Datei ändern Java Basics - Anfänger-Themen 1
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 32
J Ein Wort aus einer Datei zufällig ermitteln Java Basics - Anfänger-Themen 3
S Verbindung von einer Excel Datei zu Java-- Java Basics - Anfänger-Themen 4
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
I ArrayList - Methode zum Speichern eines Eintrags in einer Datei Java Basics - Anfänger-Themen 17
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
E Einteilung der Räume mit einlesen einer .txt datei Java Basics - Anfänger-Themen 16
B Erstellung einer XML Datei Java Basics - Anfänger-Themen 8
D Erste Schritte Projekt in Ecplise in einer .zip Datei speichern Java Basics - Anfänger-Themen 8
S Probleme mit abspielen einer .wav Datei Java Basics - Anfänger-Themen 2
S Wort suchen und ersetzen in einer Datei Java Basics - Anfänger-Themen 6
A Sortieren ausgerechneter Werte aus einer TXT Datei Java Basics - Anfänger-Themen 8
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
C Zeilen aus einer Datei in Array speichern Java Basics - Anfänger-Themen 4
F Mehrere Zeilen zu einer Zeile zusammenfügen und in eine Datei schreiben Java Basics - Anfänger-Themen 1
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
E Fehler beim Debuggen einer jsp-Datei Java Basics - Anfänger-Themen 3
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
J Erstellen einer Datei ohne path Java Basics - Anfänger-Themen 1
V Klassen Fehler beim compilieren einer Datei in CamelCase Java Basics - Anfänger-Themen 2
M In einer Datei schreiben - Java Java Basics - Anfänger-Themen 3
M Eigenschaften einer Datei auslesen Java Basics - Anfänger-Themen 5
Alex/89 Werte einer .txt Datei sortieren Java Basics - Anfänger-Themen 8
N gerichteter Graph aus einer Datei einlesen Java Basics - Anfänger-Themen 21
J Encoding Problem beim Einlesen einer txt Datei mit Umlauten Java Basics - Anfänger-Themen 3
J Java - Abspielen einer wav Datei Java Basics - Anfänger-Themen 2
F Zeichen einer Datei zaehlen Java Basics - Anfänger-Themen 1
I Klassen Mehrere Java Klassen in einer .java Datei Java Basics - Anfänger-Themen 7
K Mit Scanner aus einer txt Datei lesen und jede Person mit name, vorname, geburtsdatum speichern Java Basics - Anfänger-Themen 5
E Input/Output Property-Datei aus einer Zip lesen in in einer anderen Zip-Datei ist Java Basics - Anfänger-Themen 3
M Pfad zu einer Datei in einer exportierten Jar-Datei Java Basics - Anfänger-Themen 5
Z Greenfoot Variable in einer Datei und nicht in einem Objekt/World speichern Java Basics - Anfänger-Themen 1
S Eine Spalte einer CSV Datei ausgeben Java Basics - Anfänger-Themen 2
J Zeilen aus einer .txt-Datei auslesen und Variablen zuweisen Java Basics - Anfänger-Themen 11
J Eingabeaufforderung stürzt ab (beim Ausführen einer Java-Datei) Java Basics - Anfänger-Themen 3
D Problem beim Lesen einer txt-Datei Java Basics - Anfänger-Themen 8
M Wie sämtliche Schlüssel und Attibutwerte aus einer Propertie Datei lesen? Java Basics - Anfänger-Themen 3
K Inhalt von einer csv-Datei abspeichern Java Basics - Anfänger-Themen 3
M Kopieren einer .wav Datei Java Basics - Anfänger-Themen 6
A Hashwert einer Datei berechnen Java Basics - Anfänger-Themen 3
J Daten von einer PHP Datei ablesen Java Basics - Anfänger-Themen 1
I Authentifizierung einer iCal- Datei auf einer Webseite Java Basics - Anfänger-Themen 1
kaoZ Input/Output Android : Deserialisieren von mehreren Objekten in einer Datei Java Basics - Anfänger-Themen 0
C auslesen bestimmter werte einer textdatei und anschl. hineinschreiben in eine neue txt-datei. Java Basics - Anfänger-Themen 2
N Bestimmte Zeile aus einer Datei auslesen Java Basics - Anfänger-Themen 10
Z Problem beim Lesen und Schreiben einer Datei Java Basics - Anfänger-Themen 10
O Auflösung einer Bild-Datei bekommen ohne sie herunterzuladen?? Java Basics - Anfänger-Themen 7
S Input/Output einlesen aus einer evtl. leeren Datei Java Basics - Anfänger-Themen 5
S Erste Schritte Ausführen einer Class Datei Java Basics - Anfänger-Themen 6
L Split + Zeilen einer Datei mit bestimmtem Inhalt löschen Java Basics - Anfänger-Themen 23
T NullPointerException bei Verwendung einer Klasse einer anderen .jar datei Java Basics - Anfänger-Themen 3
D Input/Output Mehrere Objecte in einer Datei Java Basics - Anfänger-Themen 5
C Wörter aus einer txt datei lesen Java Basics - Anfänger-Themen 19
M Größe einer Datei via. Link ermitteln Java Basics - Anfänger-Themen 9
E Anmeldung an Webseite und Abruf einer Datei Java Basics - Anfänger-Themen 3
P Interpreter-Fehler Probleme beim Ausführen einer Jar Datei Java Basics - Anfänger-Themen 2
A Werte per Zufall aus einer Datei ziehen und in eine neue Datei schreiben Java Basics - Anfänger-Themen 9
U Öffnen einer war-Datei Java Basics - Anfänger-Themen 3
J Öffnen einer jar-Datei Java Basics - Anfänger-Themen 22
S JTabbedPane jeder Tab in einer eigenen java Datei? Java Basics - Anfänger-Themen 3
S Arbeiten mit einer CSV Datei und Überprüfen von einem Datum in einem Textfeldern Java Basics - Anfänger-Themen 4
A Problem beim Ausführen einer .jar datei auf externen System Java Basics - Anfänger-Themen 5
K Starten einer ausführbaren JAR Datei Java Basics - Anfänger-Themen 8
F META-INF/persistence.xml in einer war-Datei Java Basics - Anfänger-Themen 6
R Kopieren einer Datei Java Basics - Anfänger-Themen 18
M Speichern in einer .txt Datei Java Basics - Anfänger-Themen 3
K Dekomprimieren einer Datei.txt Java Basics - Anfänger-Themen 22
L Problem beim Einlesen einer Datei in einen String Java Basics - Anfänger-Themen 12
A Umwandlung einer Datei ins int Java Basics - Anfänger-Themen 26
D Amplitude einer 8-Bit *.wav Datei Java Basics - Anfänger-Themen 2
H Pseudo-Stack (char[] stackArray) mit Zeichen aus einer .txt-Datei befüllen Java Basics - Anfänger-Themen 5
G Input/Output Zeilenanzahl einer .txt Datei ausgeben Java Basics - Anfänger-Themen 2
B Werte der Variable aus Klasse JTextArea in einer Datei der Klasse RandomAcessFile speichern Java Basics - Anfänger-Themen 10
D Java Applet in einer .jar datei Java Basics - Anfänger-Themen 2
K Komisches Verhalten beim erstellen einer Datei Java Basics - Anfänger-Themen 5
Luk10 Dateipfad beim Laden einer Datei + Neue kleine Frage! Java Basics - Anfänger-Themen 11
J byteweise Einlesen einer Datei "Von.. bis.." Java Basics - Anfänger-Themen 3
c_sidi90 Array in einer txt Datei speichern Java Basics - Anfänger-Themen 11
T Erstellen einer .csv-Datei Java Basics - Anfänger-Themen 12
S Intwert aus einer txt.datei auslesen Java Basics - Anfänger-Themen 3
J Pfad bzw. Namen einer Datei auslesen Java Basics - Anfänger-Themen 6
J Einlesen/Speichern von Strings aus einer Datei Java Basics - Anfänger-Themen 15
VfL_Freak [JNI ]aus einer nativen DLL eine JAR-Datei erzeugen ?? Java Basics - Anfänger-Themen 4
P Bestimmte Zeilen einer Datei ermitteln ? Java Basics - Anfänger-Themen 30

Ähnliche Java Themen

Neue Themen


Oben