ERLEDIGT
JA
JA
ANTWORTEN
40
40
ZUGRIFFE
1511
1511
EMPFEHLEN
-
hallo zusammen,
folgendes problem ich wollte nur ein kleines Programm schreiben das mehrere Programme installiert ohne das man was machen muss also eine silent installation.
ich hab das auch schon mit batch gemacht (was auch funktioniert), Nun wollte ich das zum üben in Java programmieren. Nur eine exe aufzurufen habe ich auch hinbekommen, nur die exe mit parametern zu starten leider nicht. HIer mal der Code was ich bis jetzt habe:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Runtime rt = Runtime.getRuntime(); String[] command = {"wrar380d.exe, "/s"}; try { Process install = rt.exec(command); install.waitFor(); System.out.println("Process exit code is:" + install.exitValue()); log.append("WinRAR fertig installiert! \r\n"); } catch(IOException e) {System.err.println( "IOException starting process!"); log.append("Fehler beim starten der Installation von WinRAR \r\n"); } catch(InterruptedException e) {System.err.println( "Interrupted waiting for process!"); } }
Danke für eure Hilfe
mfg
Seji
-
Wenn das der Code ist, den du gepostet hast.....naja....wahrscheinlich nicht....
also:
klappt echt nicht?Code java:1
rt.exec("winrar.exe /s");
wie macht sich das denn bemerkbar?
-
Wenn du damit sagen willst das ich das nicht selber geschrieben habe, hast du recht. Ich hab mir den Code ausm Inernet zusammengesucht.
Es macht sich bemerkbar indem er eine IOException wirft und zwar in Zeile 10.wie macht sich das denn bemerkbar?
Und
geht leider auch net, was ich haber aber auch schon probiert hatte.Code java:1
rt.exec("winrar.exe /s");
-
Hi,
bis auf das fehlende " in Zeile 2 sieht das doch gut aus.
Was macht denn die "/s" Option?
Habe kein winrar.
Gruß
joschi
-
was sagt denn die Exception genau?
Code java:1 2 3 4
...catch(IOException e) { e.printStackTrace(); //für mehr infos }
ne, das wollt ich damit eigentlich nicht sagen...gestern sah der code irgendwie absolut nicht kompilierfähig aus...Wenn du damit sagen willst das ich das nicht selber geschrieben habe, hast du recht. Ich hab mir den Code ausm Inernet zusammengesucht.
stimmt....keine ahnung was ich da gesehen habe.... das "IOException in Zeile 10 hatte mich irritiert.bis auf das fehlende " in Zeile 2 sieht das doch gut aus.
wahrscheinlich wegen der Formatierung...
-
-
Hallo zusammen,
danke für die vielen antworten. habs dadurch hinbekommen. Code sieht jetzt so aus(sry für die schlechte formatierung):
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
log.append("WinRAR wird nun Installiert, bitte warten... \r\n"); String pfad=new File(".").getAbsolutePath(); Runtime rt = Runtime.getRuntime(); String[] command = {pfad+"/data/"+"wrar380d.exe","/s"}; try { Process install = rt.exec(command); install.waitFor(); System.out.println("Process exit code is:" + install.exitValue()); log.append("WinRAR fertig installiert! \r\n"); } catch(IOException e) { System.err.println("IOException starting process!"); e.printStackTrace(printWriter); System.out.println(stringWriter.toString()); } catch(InterruptedException e) {System.err.println( "Interrupted waiting for process!"); } }
Ja sry, hab vergesen zu sagen das nur ein Codeauschnitt handelt. ich wollte net ganzen code mit gui usw. posten.ne, das wollt ich damit eigentlich nicht sagen...gestern sah der code irgendwie absolut nicht kompilierfähig aus...
Dadurch wird WinRAR silent installiert, ich will ein "AllinOneSilent" installer machen...Was macht denn die "/s" Option?
Es lag schließlich es daran das ich nicht den kompletten Pfad angeben habe.
-
21.10.08 11:22 #8Code :
1
String[] command = {pfad+"/data/"+"wrar380d.exe","/s"};
pfad angaben werden soweit ich weiß in windows mitgetrennt angegeben und nicht wie bei dir mitCode :1
\
Code :1
/
dabei nicht vergessen: um ein \ in Java in einen String zuschreiben musst du \\ eingebenWenn mein Beitrag dir geholfen hat, würde ich mich sehr über eine positive Bewertung oder ein Danke freuen
Gruß Johannes
::: Homepage :::
-
ok danke werde es ändern.
mfg
Seji
-
So ich bin nochmal

ein problem hätte ich da noch und zwar, das wenn ich installieren klicke dann sollte das Programm erst ausgeben:" andwendung xx wird installiert bitte warten.." das gibt er aber erst aus wenn die anwendung fertig installiert ist.
Hier könnt ihr euch diesmal den ganzen qulltext anschauen.
-
also zuerst:
/ im windows-pfad unter java benutzen ist gar kein problem.
der Vorteil dabei:
- keine blöden doppelten \ (also \\)
- auch unter nicht Windows-Systemen nutzbar
zum anderen:
- pack dein exec("winrar") in einen Thread
- wenn dein exec im EDT(event-dispatch-thread) läuft, wird alles blockiert bis er fertig ist....
-
21.10.08 16:56 #12
man lernt nie aus

gut zu wissen @ benhazeWenn mein Beitrag dir geholfen hat, würde ich mich sehr über eine positive Bewertung oder ein Danke freuen
Gruß Johannes
::: Homepage :::
-
hier nochmal nen kleines Beispiel:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
Thread t = new Thread(new Runnable() { @Override public void run() { String pfad=new File(".").getAbsolutePath(); Runtime rt = Runtime.getRuntime(); String[] command = {pfad+"/data/"+"wrar380d.exe","/s"}; try { Process install = rt.exec(command); install.waitFor(); System.out.println("Process exit code is:" + install.exitValue()); log.append("WinRAR fertig installiert! \r\n"); } catch(IOException e) { System.err.println("IOException starting process!"); e.printStackTrace(printWriter); System.out.println(stringWriter.toString()); } catch(InterruptedException e) { System.err.println("Interrupted waiting for process!"); } }); t.start();
dann musste halt noch was einbauen um bescheid zu bekommen wann der thread durch ist...
-
okay danke hört sich logisch an. ich werds morgen probieren hab heute leider keine zeit.
mfg
Seji
-
hab mir nochmal den code angesehen...
also nochmal zum Verständnis:
im Prinzip muss *NUR*
Code java:1
rt.exec(command);
in einen Thread.
Alles andere kann (sollte!?) außerhalb passieren.
Nochwas:
je nachdem WIE deine Anwendung gestartet wurde, kann:
auch mal einen anderen Pfad (als den von dir vermuteten) ausgeben!Code java:1
new File(".").getAbsolutePath();
In meinen Servlets wird folgendes ausgegeben:
c:\apache\tomcat\bin
(also daran denken)
Ähnliche Themen
-
Standardwert bei Parametern
Von Veränderung im Forum Flash PlattformAntworten: 2Letzter Beitrag: 15.12.08, 20:45 -
CMD mit Parametern starten
Von KartoffelKiffer im Forum Microsoft WindowsAntworten: 2Letzter Beitrag: 12.07.07, 15:36 -
C# : Methoden mit Parametern als eigenen Thread Starten?
Von BeaTBoxX im Forum .NET CaféAntworten: 4Letzter Beitrag: 17.10.06, 21:23 -
Thread starten, stoppen, erneut starten.
Von flashray im Forum JavaAntworten: 1Letzter Beitrag: 22.01.06, 14:14 -
Makro automatisch starten beim Starten von Word
Von zoltan im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 17.11.04, 14:30





Zitieren
Login





