# File mit einem bestimmten Programm öffnen



## macsx (14. Februar 2009)

Sers!

Ich habe ein File, egal welchen Typs (z.B. "img.png"). Nun möchte ich dieses File mit Corel Paint Shop Pro öffnen. Wie stelle ich das am besten an?!

Also wie ich Corel PSP öffne weiß ich, aber wie übergebe ich dem Programm die Datei zum öffnen?!

Jemand eine Idee


----------



## Kai008 (14. Februar 2009)

Windows 5.1 übergebt offensichtlich eine Datei, die per "Öffnen mit" verknüpft ist einfach den gesuchten Pfad als 1. Parameter.
Zu dem Entschluss bin ich nach folgenden Testsource gekommen:


```
public class Main
{
	public static void main(String[] args)
	{
		Main.exec("MSPaint.exe C:\\bild.jpg");
		Main.exec("Notepad C:\\java.txt");
	}
	private static void exec(String path)
	{
		try
		{
			Runtime.getRuntime().exec(path);
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	}
}
```

Man, ich hätte mich beim Schreiben fast überanstrengt. Wies mit anderen OSes ist weiß ich nicht.


----------



## macsx (14. Februar 2009)

Sers!

Danke, das hilft mir ungemein weiter!

Wegen der "Überanstrengung" kann ich dir da nur ein Zitat nah bringen:
      "Wer copy&paste beherscht sitzt auf der Gewinnerseite!"

PS.: Wenn jemand einen plattformunabhängigen Weg kennt bin ich jederzeit offen dafür!


----------



## macsx (16. Februar 2009)

Sers!

Ich hab längerem Weitersuchen noch den ProcessBuilder gefunden. Mit dem solls wohl plattformunabhängig funktionieren.

Beispiel:

```
ProcessBuilder pb = new ProcessBuilder("C:\\Programme\\VideoLAN\\VLC\\vlc.exe",
 "C.\\example.wma"");
pb.start();
```

Diese Variante hat ausserdem noch zwei Vorteile. 

1.Bei einem Pfad wie z.B. "C:\Dokumente und Einstellungen\\...." macht die Runtime-Variante Probleme, weil sie den Pfad nur bis ersten Leerzeichen einliest!

2. Dieser Methode können mehrere Parameter mitübergeben werden.

Leider hab ich momentan nur Windows installiert. Vielleicht kann ja wer mit Linux o.Ä. das mal bestätigen!! Wäre echt nett!!


----------

