tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1527
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DavidC DavidC ist offline Grünschnabel
    Registriert seit
    Oct 2008
    Beiträge
    2
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    ...
    String player = "C:\\Programme\\VideoLAN\\VLC\\vlc.exe";
    ...
    private void onShowVideoFile(java.awt.event.MouseEvent evt) 
    {                              
         File videoFile= new File([B]"hier steht mein pfad mit den leerzeichen"[/B]);
         mbl.openVideoFile(player, videoFile);
    }
    ...


    Business-Layer Klasse (mbl)
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    ...
    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?
     

  2. #2
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    905
    Was sagt denn die Api...:

    http://java.sun.com/javase/6/docs/ap...g/Runtime.html

    Kurzum, du übergibst ein String[] und jedes String ist wie wenn du es in der Kommandozeile mit Leerzeichen trennst.

    Wobei ProcessBuilder seit Java 5 der bevorzugte Weg ist.
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

  3. #3
    mehirc mehirc ist offline Mitglied Bronze
    Registriert seit
    Jun 2004
    Beiträge
    29
    Hi,

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

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

    Gruß,
    Michael
     

  4. #4
    DavidC DavidC ist offline Grünschnabel
    Registriert seit
    Oct 2008
    Beiträge
    2
    @mehirc:

    Danke für die Antwort. Hab's gleich ausprobiert, und es funktioniert super. Danke nochmals
     

  5. #5
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    Registriert seit
    Aug 2005
    Ort
    Karlsruhe (Baden-Württemberg)
    Beiträge
    905
    Wie gesagt, der richtige Weg wäre:

    Wenn >=Java5:
    Code java:
    1
    2
    
    ProcessBuilder pb = new ProcessBuilder(player, videoFile);
    Process p = pb.start();

    ansonsten:

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

    Dadurch übernimmt Java für dich das escapen was je nach Betriebssystem unterschiedlich ist.
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
    Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
    Blog: http://javaeffective.wordpress.com/

Ähnliche Themen

  1. Magix video deluxe.. problem beim exportieren
    Von kyue im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 1
    Letzter Beitrag: 23.12.06, 01:27
  2. Probleme beim Öffnen von Text-Dateien
    Von bleibirne im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 24.01.06, 16:46
  3. Versionsproblem beim Öffnen von Office-Dateien
    Von mstangl im Forum Office-Anwendungen
    Antworten: 6
    Letzter Beitrag: 21.12.05, 17:33
  4. Antworten: 2
    Letzter Beitrag: 29.11.04, 09:00
  5. Problem beim Öffnen
    Von MissIndependent im Forum Photoshop
    Antworten: 8
    Letzter Beitrag: 01.01.04, 18:48