# Textdatei mit externen Editor öffnen



## Sara3112 (18. Feb 2010)

Hallo Leute,

ich habe in meinem Programm eine Schaltfläche "Wissensbasis editieren". Wenn ich diese betätige, öffnet sich ein Filechooser indem ich eine Textdatei auswählen kann. Im nächsten Schritt soll diese Datei in einem externen Editor geöffnet werden. 

Mein Problem:
ich kann kann mit Hilfe des Filechooser eine Datei auswählen und ich kann auch einen externen Editor aufrufen, aber ich weiß nicht wie ich die ausgewählte Datei in dem ex. Editor öffnen.

Mein Quellcode sieht bislang so aus:


```
else if(cmd.equals("editieren")){
   JFileChooser d = new JFileChooser();
      d.setFileFilter( new FileFilter()
         {
           @Override
	    public boolean accept( File f )
	    {
	        return f.isDirectory() || f.getName().toLowerCase().endsWith( ".txt" )
			            || f.getName().toLowerCase().endsWith( ".wb" );
	    }
	    @Override
	     public String getDescription()
             {
	         return "*.txt;*.wb";
	     }
         } );
       d.showOpenDialog( null );
        File file = d.getSelectedFile();
			   
	// Editor wir gestartet		    
        try {
            Runtime.getRuntime().exec("notepad.exe");
        }
        catch (Exception ex) {
	    System.err.println(e.toString());
	}
}
```


Ich würde mich über Tipps und Hilfe sehr freuen.
Danke schon mal im Voraus!


----------



## Michael... (18. Feb 2010)

so z.B.

```
Runtime.getRuntime().exec("notepad.exe " + file.getAbsolutePath());
```


----------



## Sara3112 (18. Feb 2010)

Danke für die schnelle Antwort. Aber leider kriege ich dann folgende Fehlermeldung, die mir nicht weiterhilft 



> java.awt.event.ActionEvent[ACTION_PERFORMED,cmd=editieren,when=1266512696562,modifiers=Strg] on javax.swing.JMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.metal.MetalBorders$MenuItemBorder@2a6f16,flags=392,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2],paintBorder=true,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=WB editieren]


----------



## Michael... (18. Feb 2010)

Das ist keine Fehlermeldung. Das ist die Ausgabe eines ActionEvents


----------



## Sara3112 (18. Feb 2010)

Ach, ich bin ja auch blöd. Ich hab die Variable im Catch-Teil nicht richtig übergeben.

Die Fehlermeldung lautet:
java.io.IOException: Cannot run program "notepad.exeC:\Dokumente": CreateProcess error=2, Das System kann die angegebene Datei nicht finden


----------



## Michael... (18. Feb 2010)

e*x*.toString(); Schreiben ;-)
besser ist

```
ex.printStackTrace();
```


----------



## Sara3112 (18. Feb 2010)

Ja, das ist mir gerade auch aufgefallen. 

Leider scheint das so nicht zu gehen, indem man einfach die Datei hinten dranhängt.


----------



## Michael... (18. Feb 2010)

Leerzeichen nach notepad.exe nicht vergessen!
Ausserdem enthält dein Pfad Leerzeichen (Frag mich heute noch wie man sowas zulassen konnte). Versuch's mal damit:

```
Runtime.getRuntime().exec("notepad.exe \"" + file.getAbsolutePath() + "\"");
```


----------



## Sara3112 (18. Feb 2010)

Oh genial. So funktioniert's. Vielen vielen Dank Michael !!!


----------

