Exe mit Parametern starten

seji

Mitglied
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:

Java:
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:
Java:
rt.exec("winrar.exe /s");
klappt echt nicht?

wie macht sich das denn bemerkbar?
 
Wenn das der Code ist, den du gepostet hast.....naja....wahrscheinlich nicht....

Wenn du damit sagen willst das ich das nicht selber geschrieben habe, hast du recht. Ich hab mir den Code ausm Inernet zusammengesucht.

wie macht sich das denn bemerkbar?

Es macht sich bemerkbar indem er eine IOException wirft und zwar in Zeile 10.

Und
Java:
rt.exec("winrar.exe /s");
geht leider auch net, was ich haber aber auch schon probiert hatte.
 
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?
Java:
...catch(IOException e)
{
   e.printStackTrace(); //für mehr infos
}

Wenn du damit sagen willst das ich das nicht selber geschrieben habe, hast du recht. Ich hab mir den Code ausm Inernet zusammengesucht.
ne, das wollt ich damit eigentlich nicht sagen...gestern sah der code irgendwie absolut nicht kompilierfähig aus...

bis auf das fehlende " in Zeile 2 sieht das doch gut aus.
stimmt....keine ahnung was ich da gesehen habe.... das "IOException in Zeile 10 hatte mich irritiert.
wahrscheinlich wegen der Formatierung...
 
Wenn du in deinem Code *nicht* den vollen Pfad zu der winrar.exe angibst
muss sich deine exe in folgenden Verzeichnis befinden:

Java:
System.out.printLn(new File(".").getAbsolutePath(););

(sonst gibbet wahrscheinlich eine FileNotFoundException oder so....)
 
Hallo zusammen,

danke für die vielen antworten. habs dadurch hinbekommen. Code sieht jetzt so aus(sry für die schlechte formatierung):

Java:
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!");
  }
        
 }

ne, das wollt ich damit eigentlich nicht sagen...gestern sah der code irgendwie absolut nicht kompilierfähig aus...

Ja sry, hab vergesen zu sagen das nur ein Codeauschnitt handelt. ich wollte net ganzen code mit gui usw. posten.

Was macht denn die "/s" Option?
Dadurch wird WinRAR silent installiert, ich will ein "AllinOneSilent" installer machen...

Es lag schließlich es daran das ich nicht den kompletten Pfad angeben habe.
 
Code:
String[] command = {pfad+"/data/"+"wrar380d.exe","/s"};

pfad angaben werden soweit ich weiß in windows mit
Code:
\
getrennt angegeben und nicht wie bei dir mit
Code:
/

dabei nicht vergessen: um ein \ in Java in einen String zuschreiben musst du \\ eingeben
 
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.
 
Zurück