# avi-Datei mit Desktop.getDesktop().open(File) öffnen



## Guest (24. Feb 2008)

Hallo,

ich habe ein Programm geschrieben, mit dem auf Knopfdruck eine avi-Datei im Standard-Player geöffnet werden soll. Nach kurzer Internetsuche habe ich u.a. hier rausgefunden, dass Desktop.getDesktop().open(File) dabei hilfreich sein könnte. Also habe ich folgenden Code eingebaut:

```
public void actionPerformed(ActionEvent e) {
	if (e.getSource() == playbutton) {
		try {
			Desktop.getDesktop().open( new File("D:\\test.avi") ); 
		}
		catch (Exception exc) { System.out.println(exc);}
	}
}
```
Welche Datei es nun genau ist, wird erst zur Laufzeit festgelegt, aber zum Ausprobieren lasse ich _d:\test.avi_ starten. Compliert wird fehlerfrei, nur beim Klicken auf den entsprechenden Button schmiert mein Java-Programm ab und auf der Konsole erscheint folgende Fehlermeldung:


> #
> # An unexpected error has been detected by Java Runtime Environment:
> #
> #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0c62e997, pid=844, tid=3568
> ...


Mit .txt-Dateien klappt es reibungslos.

nvcpl.dll gehört anscheinend zum NVidia-Grafikkartentreiber, jedoch habe ich auf meinem System (Windows XP Prof SP2) sonst keine Probleme mit dem Grafikkarten-Treiber.
Die Datei _d:\test.avi_ ist vorhanden und lässt sich auch normal per Doppelklick im Standard-Player starten.

Hier wird ein ähnliches Problem beschrieben, jedoch wird da nur vorgeschlagen, den Umweg über eine Batch-Datei zu gehen. Das halte ich für unnötig umständlich und ist nicht gerade förderlich für die Betriebssystemunabhängigkeit des Programms.

Woran liegt es nun, dass es nicht so klappt, wie ich möchte? Und wie schaffe ich es, dass es klappt?

Danke schon mal für eure Hilfe.


----------



## The_S (25. Feb 2008)

Ist n Fehler in der VM. Hast du das neueste Java Update? Evtl. auch mal GraKa Treiber aktualisieren.


----------



## Guest (25. Feb 2008)

Der Grafikkarten-Treiber ist aktuell, Java habe ich auf Version 1.6.0_04 aktualisert. Das Problem besteht weiter. 

```
import java.awt.*;
import java.io.*;

class Test {
	public static void main(String[] args) {
		try {
			Desktop.getDesktop().open( new File("D:\\test.avi") ); 
		} catch (Exception e) {}
	}
}
```



> # An unexpected error has been detected by Java Runtime Environment:
> #
> #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0396e997, pid=1380, tid=3212
> #
> ...



Hmm... werde mal schauen, ob mir JDIC weiterhilft...


----------



## The_S (26. Feb 2008)

Kannst dus über Runtime ausführen (ist zwar nicht besonders schön, aber immerhin mal n ansatz)!?


----------



## Guest (26. Feb 2008)

Bei 
	
	
	
	





```
Runtime.getRuntime().exec( "D:\\test.avi" );
```
 passiert nichts, jedoch wird mit 
	
	
	
	





```
new ProcessBuilder( "cmd", "/c", "D:\\test.avi" ).start();
```
 die avi-Datei gestartet. Dann läufts leider nur noch auf Windows NT-Systemen. Ok, kann ich wohl mit leben, auch wenns mit nicht gefällt. Die paar Leute, die das Programm nutzen werden, sind zu 99% Windows-Nutzer. Und zur Not könnte ich vorher das BS abfragen und dann das entsprechende Kommando benutzen. Hmm... ja, so werde ich es wohl machen.


Danke für deine Bemühungen, Hobbit_Im_Blutrausch.


----------

