Avatar billede shah_khan Nybegynder
28. december 2003 - 16:59 Der er 12 kommentarer og
2 løsninger

Kører en fil fra java applikation "en GUI"

jeg vil gerne lave en GUI, hvor man kan åbne en fil med den windows defaulte program. f.eks. køre en .mp3 fil med windows media player når man trykker på den bestemte knap eller køre en .exe fil.
gerne være med koden til actionlistener delen.
Avatar billede repsak Nybegynder
28. december 2003 - 17:13 #1
try{
    Runtime rt = Runtime.getRuntime();
    Process proc = rt.exec(mediaplayerpath);
}
catch(IOException e){
}
Avatar billede shah_khan Nybegynder
28. december 2003 - 17:25 #2
den virker kun for exe fil, men jeg vil gerne kører en ikke exe fil med den defoulte program
Avatar billede arne_v Ekspert
28. december 2003 - 17:43 #3
Prøv med:

Runtime.getRuntime().exec("cmd/c " + whatever);
Avatar billede shah_khan Nybegynder
28. december 2003 - 18:11 #4
hjælper ikke. der sker ingenting. er det mening at det skal køre gennem en command window?
Avatar billede arne_v Ekspert
28. december 2003 - 19:16 #5
Det forstår jeg ikke.

Når jeg f.eks. kører:

public class X {
  public static void main(String[] args) throws Exception {
      Runtime.getRuntime().exec("cmd /c Test.java");
  }
}

så åbner den fint Test.java i den editor jeg har som default til .java filer !
Avatar billede shah_khan Nybegynder
28. december 2003 - 19:24 #6
nu har jeg selv fandt ud af hvordan det sku gøres. din løsning gælder kun for de filer der ligger i den mappe som javac sætter path til. ellers vil det ikke virke
Avatar billede shah_khan Nybegynder
28. december 2003 - 19:28 #7
det virker med at skrive kommandoerne seperat.
try {     
          String[] cmd = new String[3];

              cmd[0] = "cmd.exe" ;
              cmd[1] = "/C" ;
              cmd[2] = "D:\\Download\\test.txt";
              Runtime.getRuntime().exec(cmd);
      }
      catch (IOException ex) {
      }
Avatar billede arne_v Ekspert
28. december 2003 - 19:29 #8
Øh.

Der gælder da helt normale regler for den slags, hvis filen ligger i et andet
dir, så angiver man bare det.

public class X {
  public static void main(String[] args) throws Exception {
      Runtime.getRuntime().exec("cmd /c C:\\temp\\Test.java");
  }
}

kørt i C:\ virker også !
Avatar billede shah_khan Nybegynder
28. december 2003 - 19:29 #9
smed en svar så få du halv delen af pointerne
Avatar billede shah_khan Nybegynder
28. december 2003 - 19:30 #10
det virker heller ikke. man skal send dem seperat
Avatar billede arne_v Ekspert
28. december 2003 - 19:30 #11
Den anden form med separate argumenter er iøvrigt den mest korrekte
og er nødvendig på Linux, men med et argument har altid virket på Windows.
Avatar billede arne_v Ekspert
28. december 2003 - 19:31 #12
Hvilken JVM bruger du ?
Avatar billede shah_khan Nybegynder
28. december 2003 - 19:32 #13
ved ikke. har jbuilder 9
Avatar billede arne_v Ekspert
28. december 2003 - 19:38 #14
JB9 kommer med 1.4.1_02

Jeg har lige testet lidt og har en ide til forklaring - det virker
ikke uden mellemrum mellem cmd og /c !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester