Problem beim Öffnen von Video-Dateien mit VLC (Leerzeichen)

DavidC

Grünschnabel
Hi Leute,

ich hoffe jemand kann mir bei meinem Problem helfen:
Ich hab ein Programm, welches praktisch ein eigener Explorer für meine Videodateien darstellt. D. h. es sucht mir alle Videodateien aus einem bestimmten Pfad und zeigt die dann in einer jList an. Wenn ich jetzt eine bestimmte Datei in der Liste anklicke, soll diese mit dem VLC Media Player geöffnet werden. Das funktioniert auch, aber NUR wenn sich im gesamten Pfad keine Leerzeichen befinden. Wenn sich ein Leerzeichen im Pfad befindet hängt sich der VLC Media Player auf.

Hier mal die wichtigen Teile des Codes:

GUI-Klasse
Code:
...
String player = "C:\\Programme\\VideoLAN\\VLC\\vlc.exe";
...
private void onShowVideoFile(java.awt.event.MouseEvent evt) 
{                              
     File videoFile= new File("hier steht mein pfad mit den leerzeichen");
     mbl.openVideoFile(player, videoFile);
}
...

Business-Layer Klasse (mbl)
Code:
...
public void openVideoFile(String player, File videoFile)
    {
        try
        {
            Runtime.getRuntime().exec(player + " " + videoFile);
        } catch (IOException ex)
        {
            Logger.getLogger(ManagerBL.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println("Error 301 - Could not start video file!");
        }
    }
...


Weiß jemand, wie ich das in den Griff bekommen könnte, ohne gleich meine ganzen Dateien händisch umzubennen?
 
Hi,

der gesamte Pfad mit Leerzeichen sollte in Anführungszeichen stehen, probiers mal damit:

Code:
Runtime.getRuntime().exec(player + " " + "\"" + videoFile + "\"");

Gruß,
Michael
 
Wie gesagt, der richtige Weg wäre:

Wenn >=Java5:
Java:
ProcessBuilder pb = new ProcessBuilder(player, videoFile);
Process p = pb.start();

ansonsten:

Java:
Runtime.getRuntime().exec(new String[]{player,videoFile});

Dadurch übernimmt Java für dich das escapen was je nach Betriebssystem unterschiedlich ist.
 
Zurück