tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
6151
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Daelrik Daelrik ist offline Grünschnabel
    Registriert seit
    Aug 2006
    Beiträge
    4
    Hallo,

    ich will mittels ProcessBuilder Klasse div. Dateien mit dem entsprechenden Programm aufrufen lassen, dh. entweder mit Visio oder Excel. Dazu benutze ich folgenden simplen Code:

    Code :
    1
    2
    
    ProcessBuilder builder = new ProcessBuilder("excel", "test.xls");
    Process p = builder.start();

    würde ich "excel" zb auf notepad od ultraedit ändern und stattdessen ein test.txt öffnen wollen klappt alles, aber bei office-programmen (visio, winword, excel) verweigert er mir den Dienst bzw. schickt mir einen error=2.
    Ehrlich gesagt hab ich keinen Plan wieso es nicht geht, ich will aber auch keine fixen Pfadangaben machen müssen zu den jeweiligen Programmen, dh. die Lösung muss irgendwie in diese Richtung gehen, nämlich dass er einfach Excel oder Visio öffnet, je nachdem was ich ihm halt sage.

    Wäre da über Hilfe echt dankbar.
     

  2. #2
    flashray flashray ist offline Mitglied Rubin
    Registriert seit
    Sep 2005
    Ort
    Mannheim
    Beiträge
    1.325
    Hallo Daelrik,

    der Texteditor in Windows heißt Editor, du rufst ihn aber mit Notepad auf, weil das sein interner Name ist. Ebenso kann man bspw. den Internet Explorer mit iexplore aufrufen. Oder den Windows Media Player mit wmplayer. Schau mal in deinem Programmordner wie der genaue Name von der Wordanwendung lautet. Alternativ kannst du auch in der Verknüpfung zu Word im Startmenü oder dem Desktop nachschauen (Im Feld Ziel).

    Das wäre eine mögliche Fehlerquelle die mir einfällt. Alle Angaben ohne Gewähr!


    Vg Erdal
     

  3. #3
    flashray flashray ist offline Mitglied Rubin
    Registriert seit
    Sep 2005
    Ort
    Mannheim
    Beiträge
    1.325
    Hallo Daelrik,

    konnte mit absoluten Pfaden eine Datei mit OpenOffice Writer öffnen. Allein der Programmname hat jedoch nicht funktioniert.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    import java.io.IOException;
     
    public class Test {
     
        public static void main(String[] args) throws IOException {
            ProcessBuilder builder = new ProcessBuilder(
                    "C:\\Programme\\OpenOffice.org 2.0\\program\\swriter\\",
                    "C:\\test.odt");
            Process p = builder.start();
        }
    }


    Vg Erdal
     

  4. #4
    javaprogger1987 javaprogger1987 ist offline Mitglied Brokat
    Registriert seit
    Nov 2004
    Beiträge
    284
    Das man das nur mit dem Programmnamen aufrufen will, kann ja auch nicht klappen
    Windows muss ja wissen wo das Programm sich befindet. Notepad z.B. liegt im Windows-Ordner, der automatisch in der Path/Classpath-Variable drinsteht (in der Windows nach Programmen sucht). Ultraedit hat sich wahrscheinlich auch in diese Variable eingetragen, weshalb das auch funktioniert..
    Was du machen könntest (wenn du möchtest, dass die Standartapplikation geöffnet wird - z.B. Excel für .xls) kannst du das verwenden:
    Code java:
    1
    
    Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + "test.xls");

    Gruß
     

  5. #5
    Daelrik Daelrik ist offline Grünschnabel
    Registriert seit
    Aug 2006
    Beiträge
    4
    Classpath, aha aha.. naja dachte es ginge mit excel auch ganz normal weil mans zb unter "Ausführen.." auch simpel mit "excel" aufrufen kann, genau wie den editor mit "notepad" oder halt den ultraedit mit "ue32" .. egal, das hilft jetzt schon ein kleines bisschen mit dem Runtimebeispiel. Also schonmal dickes Danke dafür

    Mir stellt sich aber jetzt noch eine Frage: ich arbeite teils bei Excel auch mit XML files, da xml aber standardmässig nicht excel zugeordnet ist als Standardprogramm (was ja ganz gut so is) steh ich jetzt aber natürlich wieder vor dem Problem, dass ich diese xml files nicht per knopfdruck mit excel öffnen kann. Wär es etvl sinnvoll bzw überhaupt möglich den Standort der excel.exe auf dem PC zu suchen und dann vom programm den pfad zu nehmen?
     

Ähnliche Themen

  1. Processbuilder mit timeout
    Von Stiffler66 im Forum Java Grundlagen
    Antworten: 5
    Letzter Beitrag: 05.02.10, 11:58
  2. ProcessBuilder
    Von IroNHeinZ im Forum Java Grundlagen
    Antworten: 7
    Letzter Beitrag: 20.12.09, 14:59
  3. ProcessBuilder - Vista ?
    Von Ashaman im Forum Java
    Antworten: 9
    Letzter Beitrag: 18.05.08, 19:32
  4. Probleme beim ProcessBuilder
    Von Dukeatcoding im Forum Java
    Antworten: 2
    Letzter Beitrag: 24.08.07, 13:08
  5. ProcessBuilder, src - bin?
    Von flashray im Forum Java
    Antworten: 4
    Letzter Beitrag: 04.06.07, 21:12