May 06

Clase Desktop en Java 6

 

Gracias a este tema del foro de java, he descubierto la clase Desktop de Java 6. Esta clase permite abrir e imprimir ficheros con la aplicación por defecto que indique el sistema operativo. También permite lanzar el navegador por defecto con una URI determinada o el cliente de correo.

Un código tan tonto como este

Desktop.getDesktop().open(new File("c:/pingucd/readme.txt"));

en windows abrirá el notepad con el fichero readme.txt.

Interesante y simplifica bastante algunas cosas.

7 Responses to “Clase Desktop en Java 6”

  1. DaniP Says:

    Bueno, pero no es nada que no puedas hacer bajo Windows con un simple:
    Runtime.getRuntime().exec( command )
    siendo command un String[] { “cmd”, “/C”, rutafichero };

    En versiones anteriores (Win9x) servía un “start” como comando. A Mac le gusta más un “open”, y siempre nos quedará usar una URL con el protocolo “file://”.

    Ciao.

  2. Chuidiang Says:

    Hola:

    La gracia de desktop es que no tienes que abrir tú la aplicación, sino que indicas el fichero de datos y se abre con la aplicación adecuada. Como se menciona en el tema del foro, para abrir un pdf necesitarías saber exactamente la ruta de instalación y nombre del ejecutable de acrobat reader para poder abrirlo. De esta forma, símplemente indicas el fichero pdf y se abre con el acrobat reader o con la aplicación que tengas definida para abrir pdfs. Además, el código es compatible en cualquier sistema operativo, mientras que exec(”cmd”… sólo funciona en windows.

    Se bueno.

  3. DaniP Says:

    En efecto la clase desktop te hace ser independiente de la plataforma (lo malo es que te exige un jre 1.6), pero ambas abren el fichero indicado con la aplicación que el sistema tenga definida por defecto.

    Ciao.

  4. Chuidiang Says:

    Vaya, no sabía eso. Resulta que abres una ventana de ms-dos, pones el nombre de un fichero de datos y se abre solo

    c:\>fichero.pdf

    y sale el acrobat…. En cuanto llegue a casa voy a probar en linux a ver….

    Se bueno.

  5. MikE Says:

    Hola,
    Una pregunta sobre esos ejemplos que dan, aunque la clase Desktop puede servir para cualquier plataforma el path lo restrige a sólo una ya que por ejemplo “C:/…” no sirve para linux. ¿Cómo puedo hacer para que el path funcione para todos los sistemas operativos? Lo que hice fue meter esos archivos en el class path y ponbiendo en el path “Pack/test.txt” pero no funciona =(

  6. Chuidiang Says:

    Puedes poner el path con /path/fichero.txt. Eso vale para linux y en windows lo buscaría en la unidad en la que estés ejecutando el programa. En cualquier caso, abrir un fichero con un path absoluto no suele ser muy portable. O bien se pide al operador qué fichero desea abrir, o bien es un fichero que va distribuido con nuestra aplicación, por lo que el path debería ser relativo.

    Se bueno.

  7. doti Says:

    Hace tiempo lei sobre esta clase y me parece muy muy buena. No te tienes que preocupar por que tenga el programa adecuado ni nada de nada. Si no tiene el office pues el notepad y así de simple. Sobre lo del path, con mostrar un simple JFileChoose listo. Ademas normalmente el mismo fichero no esta en el mismo path en dos operativos difentes, y si lo esta es por que el path es relativo.

    Saludos ;)

Leave a Reply