Este post está orientado a la aplicación e implementación de un fragmento de código, que nos permitirá abrir un archivo de cualquier tipo (.pdf, .doc, .txt, etc...), desde una aplicación Java, este fragmento se llamará y ejecutará desde dentro del método de un botón:
Método para abrir archivo
public void abrirarchivo(String archivo){ try { File objetofile = new File (archivo); Desktop.getDesktop().open(objetofile); }catch (IOException ex) { System.out.println(ex); } }
Método del botón
private void btnAbrirarchivoActionPerformed(java.awt.event.ActionEvent evt) { abrirarchivo("archivo.pdf"); }
Instrucciones y Recomendaciones
1- Copia y pega el código resaltado en azul, dentro de la Clase en la cual quieres colocar dicho método para abrir archivos. Este código debe ir entre las llaves {} de la Clase Java en la cual lo implementaremos, y fuera de cualquier otro método.
2- Lo primero que hacemos es crear el método, dándole las características y/o propiedades de "public" y "void"; luego, le damos un nombre "abrirarchivo", seguidamente entre paréntesis "()", le pasamos un parámetro de tipo "String" y que corresponde a la ruta, nombre y extensión del archivo que deseamos abrir. Por último, delimitamos nuestro método con las llaves "{}" que contendrán todo el código que ejecutará la acción que deseamos. Teniendo en cuenta cada parte del código, esta línea quedaría de la siguiente forma:
public void abrirarchivo(String archivo){}
3- Procederemos a crear un bloque try-catch, ya que posiblemente se produzca un error a la hora de intentar abrir nuestro archivo. Dentro del try, lo que hacemos es instanciar un objeto de la Clase File, al cual llamaremos "objetofile", a dicha instancia le pasaremos como parámetro, valga la redundancia, el parámetro tipo String que colocamos al crear nuestro método; es decir, new File (archivo). En la siguiente línea lo que hacemos es usar la Clase "Desktop", y por consiguiente el método ".getDesktop()"; lo que nos conlleva a ejecutar y obtener una instancia de una aplicación nativa de escritorio que permita manejar una URI (Uniform Resource Identifier) o un archivo; es decir, que podremos lanzar aplicaciones como navegadores, clientes de correo electrónico, y programas específicos que nos permitan abrir, editar o imprimir archivos. Seguidamente usamos el método ".open()" para abrir un archivo específico, usando el programa asignado por defecto en el sistema para abrir esta clase de archivos; a este método le pasamos un parámetro el cual es el objeto de la Clase File que instanciamos en la línea anterior; es decir, ".open(objetofile)". Teniendo en cuenta todo lo anterior, este fragmento quedaría de la siguiente manera:
try {
File objetofile = new File (archivo);
Desktop.getDesktop().open(objetofile);
}
4- En la parte del "catch" capturamos en una variable "ex", el error y/o excepción del tipo "IOException" (problemas para encontrar el recurso especificado); luego, procedemos a imprimir por consola el contenido de la variable:
}catch (IOException ex) {
System.out.println(ex);
}
5- Copia y pega el código resaltado en amarillo, dentro del método del botón desde el cual quieres abrir un archivo. Lo que hacemos en esta línea, es llamar al método que creamos con anterioridad "abrirararchivo", y pasarle como parámetro un "String", que contiene la ruta, y el nombre junto con la extensión del archivo que queremos que nuestro programa abra:
abrirarchivo("src/archivo.pdf");
6- Ahora algo muy importante y a tener en cuenta; es que debemos importar las librerías necesarias para que nuestro método funcione; para ello colocaremos el siguiente fragmento de código, después de la línea de código que contiene el nombre del paquete donde está ubicada la Clase en que nos encontramos, ej. "package NombrePaquete;" y sobre la línea de código que contiene el nombre de nuestra Clase, ej. "public class NombreClase {":
import java.awt.Desktop; import java.io.File; import java.io.IOException;
7- Ahora sólo basta con ejecutar tu proyecto y hacer las respectivas pruebas.
8- Si te interesa, puedes seguir el Curso de Java, que se está realizando mediante videotutoriales y con eBooks, en el Blog UH T.I.S
¿Conoces una forma más óptima de realizar el anterior procedimiento?, no dudes en compartirla con todos nuestros amigos de la web.
Si te fue de gran ayuda esta información, no olvides compartirla con tus amigos y en las redes sociales.
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...
Si te fue de gran ayuda esta información, no olvides compartirla con tus amigos y en las redes sociales.
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...
Gracias amigo me salvaste :)
ResponderBorrarSaludos estimado Kevin, que bueno que te haya sido de gran ayuda este artículo, no olvides no solamente compartir este post sino el sitio en si, con tus amigos y en las redes sociales, ya que puedes ayudar a otros a encontrar lo que están buscando a la hora de desarrollar sus programas.
BorrarBendiciones...
Muy buena la informacion. una recomendación si quieres resaltar algo colocalo en negritas o en otro color. para la parte del codigo igual. asi como esta no muy agradable a la vista. saludos
ResponderBorrarMe fue de gran ayuda muchas gracias :D!
ResponderBorrarSaludo estimado Gelber.
BorrarMe alegra que este código te haya sido de gran ayuda.
No olvides compartir este post en tus redes sociales para ayudar a más colegas como tú.
¡CRISTO TE AMA!
Bendiciones...
Muchas gracias, buen aporte!
ResponderBorrarUna pregunta, si se desea ejecutar un archivo pero con un comando especial, es posible, es decir que al archivo en si se le agrege un -windows para que se ejecute en modo ventana por ejemplo
ResponderBorrarSaludos estimado Marcelo R., si deseas usar líneas de comando para abrir un archivo desde JAVA, te recomiendo que veas el post donde se explica dicho procedimiento, dando CLIC AQUÍ.
Borrar¡CRISTO TE AMA!
Bendiciones...
exelente, te felicito por esta web !! un abrazo grande y gracias
ResponderBorrarSaludos estimado joe, gracias por tus comentarios.
BorrarNo olvides compartir esta web con tus colegas programadores.
¡CRISTO TE AMA DE VERDAD!
Bendiciones...
buenas una pregunta como hago para comparar cualquier arcivo en java
ResponderBorrarGracias, resultó.
ResponderBorrarHola, sabes que me basé en tú método, y funciona bien ejecutando la aplicación desde Netbeans, pero cuando ejecuto el .jar no pasa nada, es decir, el botón no funciona, sabes que puede ser lo que pasa?
ResponderBorrarSaludos talison, te recomiendo que verifiques la ruta del archivo, es decir; si estás usando una ruta estática, por ejemplo: "miarchivo.pdf", entonces deberás poner el archivo dentro de la misma carpeta donde se encuentra tu .jar, si es otra ruta debes cerciorarte que el .jar pueda acceder desde donde se encuentra.
BorrarCualquier duda me comentas...
¡CRISTO TE AMA!
¡JESUCRISTO ES TU SALVADOR!
Bendiciones...
Am. Es necesario crear el botón???
ResponderBorrarAm. Es necesario crear el botón???
ResponderBorrarNo me sale, que puedo hacer??
ResponderBorrarSi funciona, lo que no funciona es que cuando creas el ejecutable .jar no sale nada porque la ruta obtenida en metodo File te da la ruta relativa o absoluta segun como escribas la ruta del fichero. El problema es que esa ruta no es valida en el jar, se deberia poder usar getclass().getresources() para capturarlo desde la fuente pero hasta ahora no me dio un resultado positivo. Comentare cuando encuentre una solucion
Borrarmuy bueno me funciono perfecto, venia probando otros codigos y no me andaban.
ResponderBorrarlisto gracias
ResponderBorrar