Shellscript aus .jar archiv ausführen

Status
Nicht offen für weitere Antworten.

mupilz

Neues Mitglied
huhu,

Ich wurde von einem Bekannten gefragt, ob ich für ihn ein kleines GUI für das wiederherstellen von Dateien/Ordnern mit rdiff schreiben kann.
Das Wiederherstellen an sich übernimmt ein shellscript, das er geschrieben hat, diesem wird nur von dem GUI der Dateipfad als Parameter übergeben.
Alles klappt, bis zu dem Zeitpunkt, wo ich alles in ein .jar archiv reinpacke.
Und zwar:
Das Script liegt in einem Unterordner "scripts" in dem Archiv, und ich habe keine Ahnung, wie ich darauf zugreifen kann.
ich habe es bereits so probiert:
Java:
java.net.URL scriptURL = getClass().getResource("scripts/makebackup");
Process p = Runtime.getRuntime().exec(scriptURL + " " + path); //in der Variable "path" ist der Pfad zu der wiederherzustellenden Datei abgelegt

das erzeugt aber folgende Fehler:

Code:
java.io.IOException: Cannot run program "jar:file:/home/mato/Desktop/searchBackup.jar!/scripts/makebackup": java.io.IOException: error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:474)
	at java.lang.Runtime.exec(Runtime.java:610)
	at java.lang.Runtime.exec(Runtime.java:448)
	at java.lang.Runtime.exec(Runtime.java:345)
	at searchBackup.actionPerformed(searchBackup.java:210)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
	at java.awt.Component.processMouseEvent(Component.java:6106)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3276)
	at java.awt.Component.processEvent(Component.java:5871)
	at java.awt.Container.processEvent(Container.java:2105)
	at java.awt.Component.dispatchEventImpl(Component.java:4467)
	at java.awt.Container.dispatchEventImpl(Container.java:2163)
	at java.awt.Component.dispatchEvent(Component.java:4293)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
	at java.awt.Container.dispatchEventImpl(Container.java:2149)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4293)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:164)
	at java.lang.ProcessImpl.start(ProcessImpl.java:81)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:467)
	... 29 more

Google, mehrere Leute sowie die Boardsuche haben mir keine Lösungen angeboten.

achja, zu der Java Version:
ich benutze Linux, "java -version" spuckt mir folgendes aus:
Code:
java version "1.6.0_0"
OpenJDK  Runtime Environment (build 1.6.0_0-b11)
OpenJDK 64-Bit Server VM (build 1.6.0_0-b11, mixed mode)

und "javac -version" dieses:
Code:
javac 1.6.0_0-internal

Über zumindest einen Lösungsansatz würde ich mich sehr freuen!

ich hoffe, ihr könnt mir weiterhelfen, ich bin schon fast am verzweifeln ;(

mfg mupilz
 

musiKk

Top Contributor
Das funktioniert nicht. Die Shell benötigt das Script als Datei (und nicht innerhalb eines Archivs). Eine Variante wäre, eine temporäre Datei zu erstellen ([c]File.createTempFile()[/c]) und das Script dort reinzuschreiben.
 

mupilz

Neues Mitglied
ahh, okay

vielen dank, ich hab das Problem gelöst :toll:

Java:
File tmpFile = File.createTempFile("makebackup", ".tmp");
tmpFile.deleteOnExit();
BufferedWriter out = new BufferedWriter(new FileWriter(tmpFile));
out.write("echo \"das klappt ja gut!\"");
out.close();
Process chmod = Runtime.getRuntime().exec("chmod oga+rwx " + tmpFile.getCanonicalPath());
Process p = Runtime.getRuntime().exec(tmpFile.getCanonicalPath() + " " + path);

was sowas angeht, finde ich Java wirklich etwas umständlich, wobei die Sprache mir insgesamt gut gefällt :)
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
G Jar-Archiv zum Lesen einer Konfigurationsdatei Java Basics - Anfänger-Themen 9
H Classpath VBScript in Jar-archiv ausführen Java Basics - Anfänger-Themen 2
P Input/Output String via Drag & Drop auf jar-Archiv Java Basics - Anfänger-Themen 2
H Java Archiv lässt sich nur pfadgebunden öffnen? Java Basics - Anfänger-Themen 26
A JUnit Tests in Jar-Archiv packen Java Basics - Anfänger-Themen 2
E Dateien in ein JAR-Archiv packen Java Basics - Anfänger-Themen 2
P Interpreter-Fehler jar Archiv wird nicht ausgeführt Java Basics - Anfänger-Themen 4
E Projekt als jar-Archiv speichern Java Basics - Anfänger-Themen 4
M Datei aus .jar Archiv ausführen Java Basics - Anfänger-Themen 4
R NoClassDefFoundError im *jar Archiv Java Basics - Anfänger-Themen 7
F JAR Archiv VM Argumente übergeben Java Basics - Anfänger-Themen 3
D Datei aus einem .jar Archiv aufrufen Java Basics - Anfänger-Themen 4
B jar Archiv anlegen Java Basics - Anfänger-Themen 2
N Ressourcendatei im Jar-Archiv Java Basics - Anfänger-Themen 2
C JAr Archiv erstellen Java Basics - Anfänger-Themen 7
G Applet als Jar-Archiv Java Basics - Anfänger-Themen 15
hdi bilder funktionieren im jar archiv nicht. Java Basics - Anfänger-Themen 3
G Bilder ins jar-Archiv einbinden Java Basics - Anfänger-Themen 1
O Jar-Archiv im Servlet verwenden Java Basics - Anfänger-Themen 3
G Jar archiv Pfadangabe! Java Basics - Anfänger-Themen 5
S Zip Archiv erstellen Java Basics - Anfänger-Themen 9
G leere Ordner befinden sich nicht im Zip-Archiv Java Basics - Anfänger-Themen 8
P Images im Archiv .jar Java Basics - Anfänger-Themen 9
N Datei aus Jar Archiv abspeichern Java Basics - Anfänger-Themen 2
X Datei in einem Archiv ersetzen Java Basics - Anfänger-Themen 4
M eine *.gif datei zum jar archiv hinzufügen Java Basics - Anfänger-Themen 3
O Existenz einer Datei im jar-Archiv überprüfen Java Basics - Anfänger-Themen 2
G pdf Dokument aus .jar Archiv Java Basics - Anfänger-Themen 8
S Classloader JAR Archiv Java Basics - Anfänger-Themen 3
O datei erstellen in jar archiv? Java Basics - Anfänger-Themen 4
G Jar Archiv Java Basics - Anfänger-Themen 3
H Jar-Archiv aus anderem Jar-Archiv aufrufen? Java Basics - Anfänger-Themen 3
J relativer Pfad in jar-Archiv Java Basics - Anfänger-Themen 5
Z Jar-Archiv Classpath Variable Java Basics - Anfänger-Themen 6
G Frage zu zip-Archiv Java Basics - Anfänger-Themen 2
G Wie generiere ich zu diesem Code ein *.jar-Archiv Java Basics - Anfänger-Themen 6
S JAR Archiv erstellen? Java Basics - Anfänger-Themen 7
A Programm findet keine wav-Dateien im jar Archiv Java Basics - Anfänger-Themen 4
A JPEG mit ins JAR-Archiv Java Basics - Anfänger-Themen 3
L jar archiv Java Basics - Anfänger-Themen 5
A .class Datein, jar Archiv ? Java Basics - Anfänger-Themen 2
E ausführbares jar-archiv funktioniert nicht Java Basics - Anfänger-Themen 2
O Obfuscateter Code lässt sich nicht ausführen? Java Basics - Anfänger-Themen 7
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
C 2 SwingWorkers nacheinander ausführen Java Basics - Anfänger-Themen 1
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
Alex_99 Aktion ausführen wenn Frame disposed wurde Java Basics - Anfänger-Themen 5
mervanpolat Binary Search Algorithmus ausführen Java Basics - Anfänger-Themen 1
hebein Mit Javaprogramm webseiten automatisiert befüllen und ausführen Java Basics - Anfänger-Themen 6
Jose05 ausführen im cmd schlägt fehl Java Basics - Anfänger-Themen 2
N Eclipse Programm normal ausführen Java Basics - Anfänger-Themen 1
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
J B-Sprache mit Arrays ausführen Java Basics - Anfänger-Themen 18
C Programm ausführen ohne JRE? Java Basics - Anfänger-Themen 3
B Wie kann ich etwas vor der Main-Methode ausführen? Java Basics - Anfänger-Themen 21
T src Ordner ausführen Java Basics - Anfänger-Themen 9
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
M Compiler-Fehler Fehler beim Ausführen des Codes Java Basics - Anfänger-Themen 25
F cmd Befehl ausführen Java Basics - Anfänger-Themen 4
H Rekursiv Methode ausführen bei Kindern Java Basics - Anfänger-Themen 12
M Rot Schwarz Bäume, ausführen? Java Basics - Anfänger-Themen 6
CptK Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
F Shell Script ausführen Java Basics - Anfänger-Themen 5
F Java auf Windows Konsole ausführen Java Basics - Anfänger-Themen 1
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
L Linux Befehle unter Windows in Eclipse ausführen Java Basics - Anfänger-Themen 3
L Shell Script ausführen in Java Java Basics - Anfänger-Themen 4
K Programm ausführen Java Basics - Anfänger-Themen 2
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
CptK Methoden Event bei gedrückter Maustaste immer wieder ausführen Java Basics - Anfänger-Themen 1
CptK Klassen Event bei gedrückter Maus immer wieder mit Pause ausführen Java Basics - Anfänger-Themen 2
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
alkaA Intellij Java Datei aus nicht Projekt ausführen? Java Basics - Anfänger-Themen 2
G sqlplus commands in java ausführen Java Basics - Anfänger-Themen 15
CptK Interface JTextField: Action mit Enter ausführen Java Basics - Anfänger-Themen 16
CptK Methoden Methode in MouseListner ausführen Java Basics - Anfänger-Themen 1
P jar file lässt sich nicht ausführen Java Basics - Anfänger-Themen 4
N Fehlermeldung beim ausführen des Programmes.. Java Basics - Anfänger-Themen 3
T Klassen 2 Klassen zeitgleich ausführen Java Basics - Anfänger-Themen 3
V Erste Schritte Anfänger: Ausführen eines Java-Programms Java Basics - Anfänger-Themen 5
B Java Eclipse Programm in einer Batch ausführen Java Basics - Anfänger-Themen 3
diqqerrr Java Datei als .exe ausführen Java Basics - Anfänger-Themen 8
I Erste Schritte Native code library failed to load beim Ausführen eines Beispiels Java Basics - Anfänger-Themen 5
Z Enter Taste alle 0,5 Sekunden ausführen Java Basics - Anfänger-Themen 1
H Script ausführen wenn Browser Notification eingetroffen ist? Java Basics - Anfänger-Themen 3
S Methoden Beim Start meines Projektes eine Methode ausführen Java Basics - Anfänger-Themen 14
V Methode eines Objekts einer ArrayList ausführen Java Basics - Anfänger-Themen 3
B Timer mehrere Male ausführen Java Basics - Anfänger-Themen 4
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
RowdyN Methoden Befehle in zufälliger Reihenfolge ausführen lassen Java Basics - Anfänger-Themen 5
T Parallel ausführen Java Basics - Anfänger-Themen 1
F Konsolen Befehl ausführen und Rückgabe auswerten Java Basics - Anfänger-Themen 3
S .java Datei in java Datei ausführen Java Basics - Anfänger-Themen 9
X Schleife bis "Bedingung" ausführen Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben