# Problem Pfad zu wechseln



## Gast2 (7. Aug 2007)

Hallo zusammen,

ich wollte eine exe ausführen. Doch ich komm noch nicht einmal bis zu dem Pfad.
bekomme jedesmal den fehler.

<ERROR>
Der Befehl "/Programme/MySQL/" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
</ERROR>



```
try
		        {      
		    	 
		            Runtime rt = Runtime.getRuntime();
		            Process proc = rt.exec("cmd /C/Programme/MySQL/");
		            InputStream stderr = proc.getErrorStreamsql'");
		            InputStreamReader isr = new InputStreamReader(stderr);
		            BufferedReader br = new BufferedReader(isr);
		            String line = null;
		            System.out.println("<ERROR>");
		            while ( (line = br.readLine()) != null)
		                System.out.println(line);
		            System.out.println("</ERROR>");
		            int exitVal = proc.waitFor();
		            System.out.println("Process exitValue: " + exitVal);
		        } catch (Throwable t)
		          {
		            t.printStackTrace();
		          }
```


----------



## The_S (7. Aug 2007)

"cmd /c C:/Programme/MySQL/"! Wie kommst du auf "cmd /C/Programme/MySQL/"? Du gibst weder das command mit, noch schreibst du den Laufwerksbuchstaben richtig ???:L


----------



## Ralf W. Balz (7. Aug 2007)

Hallo,

so könnte man ein Programm unter Windows aufrufen. Die Doppelten Backslashs müssen sein.


```
public class ProgrammAufrufen {

    public static void main(String[] args) {
        try {     
            Runtime.getRuntime().exec("C:\\Programme\\Polar\\Polar Precision Performance\\Polar 32.exe");
        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }
}
```

Gruß Ralf


----------



## Gast2 (7. Aug 2007)

weil ich bis jetzt immer pdf -dateien so aufgerufen habe und es nie ein problem gab.Selbst in der Konsole nicht. und sobald ich das c´: eingefügt habe gab es probleme.


----------



## The_S (7. Aug 2007)

äh du weißt, dass das "/c" bei "cmd /c" nicht für den Laufwerksbuchstaben steht!?


----------



## Gast2 (7. Aug 2007)

```
Process proc = rt.exec("cmd /c c:\\Programme\\MySQL\\MySQL Server 6.0\\bin\\mysqldump.exe studio -h localhost -a -C -c -e --user=root --password=****> backup/backup%Date%.sql");

Der Befehl "c:\Programme\MySQL\MySQL" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
```

mhm


----------



## Gast2 (7. Aug 2007)

nee weiß ich nicht sondern für???*g*


----------



## The_S (7. Aug 2007)

Du musst den Aufruf (sofern er leerzeichen enthält) in Anführungszeichen setzen.

/c stehet für command und weißt die konsole nur darauf hin, dass jetzt noch was "kommt"  .


----------



## Gast2 (7. Aug 2007)

ja das mit den Anführungszeichen weiß ich,aber ich weiß nicht wo ich die genau platzieren soll!!!

```
Process proc = rt.exec("cmd /c c:\\'Programme\\MySQL\\MySQL Server 6.0\\bin\\'mysqldump.exe studio -h localhost -a -C -c -e --user=root --password=****> backup%Date%.sql");
```
gut zu wissen, das mit dem /c!!!! hab das mit meinen pdfs gleich angepasst und funktioniert auch  thx[/code]


----------



## @x.l (7. Aug 2007)

Process proc = rt.exec("cmd /c *\"*c:\\Programme.......sql*\"*");


----------



## Gast2 (7. Aug 2007)

```
Process proc = rt.exec("cmd /c \"c:\\Programme\\MySQL\\MySQL Server 6.0\\bin\\mysqldump.exe studio -h localhost -a -C -c -e --user=root --password=*****> backup%Date%.sql\"");

<ERROR>
Der Befehl "c:\Programme\MySQL\MySQL" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
</ERROR>
```

mhm immer noch Probleme mit dem leerzeichen


----------



## @x.l (7. Aug 2007)

dann schau dir mal die Hilfe zu cmd an, da steht einiges über Leerzeichen, Sonderzeichen, besonderheiten bei /c,......


----------



## Gast2 (8. Aug 2007)

mhm also ich habe jetzt mal das versucht


```
Process proc = rt.exec("cmd /c c:\\projekt");
```

und da bekomm ich auch die gleiche Fehler nachricht
<ERROR>
Der Befehl "c:\projekt" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
</ERROR>

was ist daran falsch?!?!!?!?


----------



## The_S (8. Aug 2007)

Naja, Ordner kann man halt nicht ausführen  . Wenn du einen Ordner unter Windows öffnen möchtest, dann "cmd /c explorer C:\\Projekte"


----------



## Gast2 (8. Aug 2007)

ok gut zu wissen 
gibt es für die befehler irgendeine list?


----------



## The_S (8. Aug 2007)

befehler? explorer ist einfach ein Programm (der Windows-Explorer), dem du als parameter den Pfad übergibst. Ansonsten kannst du mal in der Kommandozeile "help" eintippen. Da bekommste ne liste  .


----------



## Gast2 (8. Aug 2007)

ich hab es jetzt so gemacht und funktioniert endlich 

```
String[] list={"cmd","/c","mysqldump.exe","studio","-hlocalhost", "-a","-C","-c", "-e","--user=root","--password="+password,">","backup%date%.sql"};
ProcessBuilder builder = new ProcessBuilder(list);       
 
builder.directory(new File("C:/Programme/MySQL/MySQL Server 6.0/bin"));        
		    
Process process = builder.start( );        
Scanner s = new Scanner(process.getErrorStream( )).useDelimiter("\\Z");        
		if (s.hasNext( )) {            
			FileWriter writer = new FileWriter(new File("c:/backup_error.sql"));           
			writer.write(s.next( ));          
			writer.flush( );           
			writer.close( );       
			} 
		} catch (Throwable t)
		{
		            t.printStackTrace();
		}
```

meine frage noch hierzu noch!!!
Wie mach ich so einen aufruf auf einen anderen rechner z.B. wenn der rechner inicht der server ist???


----------



## The_S (8. Aug 2007)

? Aufruf auf einen anderen Server? Da muss dann wohl n Client laufen, den du kontaktierst und der dann diesen befehl auführt und dir die ergebnisse übers netz zurückschickt.


----------



## Gast2 (8. Aug 2007)

ja genau!!!Gibt es dafür einen befehl oder brauch ich da nur ein gemeinsamses laufwerk für die beide?


----------



## The_S (9. Aug 2007)

naja, eine Möglichkeit wäre z. B. ein Laufwerk => einfach. Wenn kein gemeinsames Laufwerk vorhanden ist => Client-Server-Architektur => nicht ganz so einfach


----------



## Gast2 (9. Aug 2007)

ok ich such mal im netz was für client-server...
wie gesagt ich muss ja nur die exe datei von einem client aufrufen...


----------



## The_S (9. Aug 2007)

Ein paar Fragen (bevor alle verwirrt sind)

1.) Du schreibst einen Server.
2.) Dieser Server möchte eine exe auf einen Client übers Netzwerk ausführen.
ODER
1.) Du schreibst ein normales Programm.
2.) Dieses Programm möchte eine exe auf einem Netzlaufwerk ausführen.


----------



## Gast2 (9. Aug 2007)

das 2te.
der client soll die mysqldump.exe ausführen.
Zur zeit liegt der MySql Server auf dem gleichen rechner wei das Programm, aber das soll sich noch ändern.
Habs auch schon übers Netzwerk getestet funktioniert auch alles einwandfrei.
Nur ich denke so wie der Befehl oben aussieht wird er kein backup(mysqldump.exe) ,vom client aus ,ausführen.
Gibt es eigentlich eine funktion bzw. befehl um die laufende MySql Version herauszufinden?


----------



## The_S (9. Aug 2007)

versteh ich net :bahnhof:


----------



## Gast2 (9. Aug 2007)

mhm was genau verstehst du nicht???
ich kann von einem client auf meine datenbank zugreifen!!!!
aber ich kann von meinem client kein mysqldump.exe ausführen(noch nicht versucht).
das geht nur wenn das programm auf meinem server läuft.
da der befehl bis jetzt so aussieht wie oben. und da ist har rein codiert C:\......
und das wird auf dem client nicht funktionieren,das es den ordner ja nicht gibt.


----------



## The_S (9. Aug 2007)

ich denke das programm liegt auf dem server => von daher kein Problem. Oder steh ich gerade auf der Leitung?


----------



## Gast2 (9. Aug 2007)

jep zur zeit schon!!!
Aber in naher Zukunft nicht mehr...Darum hab ich auch nach Möglichkeiten gefragt ,dass problem zu lösen !!!
Mir ist nur die Möglichkeit mit dem gemeinsamen Laufwerk bekannt...
Wollte wissen ob es auch andere Möglichkeiten gibt...


----------



## The_S (9. Aug 2007)

Ja, auf dem Client n Client-Programm zu installieren, das über Sockets/RMI mit dem Programm auf dem Server kommuniziert und dieses dazu auffordert diese exe auszuführen.


----------



## Gast2 (9. Aug 2007)

ok thx
Werd mich mal einlesen und schauen was ich im netz dazu finde


----------

