Java - abrir pdf en un jar

   
Vista:

abrir pdf en un jar

Publicado por alemag (65 intervenciones) el 08/01/2010 13:16:43
Buenos días, quiero que al pulsar una opcion de un menu, me salga un pdf. Tengo este codigo

if (so.startsWith(new String("Windows")))
Runtime.getRuntime().exec("cmd /c start src/inria-RR-3449.pdf");
else Runtime.getRuntime().exec("/usr/mozilla/mozilla-bin ./src/inria-RR-3449.pdf");

pero si hago un jar (incluyendo todo, las imagenes, el pdf ...) y ejecuto ese jar en cualquier ordenador incluido el mio, y no se muestra dicho pdf. Tienen que ser rutas relativas, y le pongo rutas relativas, e incluyo todas las carpetas tal y como estan en mi jar. Pero nada. El pdf lo tengo en la siguiente estructura de carpetas que tengo para el proyecto:

Proyecto
bin
src . con los distintos paquetes que contienen los .java
Automata con ficheros .java
Proyecto , que tiene el java del main
utilidades, con mas ficheros .java
imagenes, con los iconos de la aplicacion, ventana splash
inria.pdf, el fichero que no me deja ver en otros ordenadores

Que estaria el problema en la ruta que le indico o algo ? He probado un monton de cosas, pero nada.

Lo mismo, me ocurre con una ventana splash, que se usan para presentación y a los 5 segundos, por ejemplo, desaparece, pero tampoco me la muestra.

¿Qué es lo que falla? Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Abrir PDF dentro de un JAR.

Publicado por Luis Roberto Pérez Rios luis.robertop87@gmail.com (1 intervención) el 18/12/2012 03:41:34
Lo que debes hacer es:
- Descomprimir el archivo PDF que esta dentro del JAR.
- Poner ese contenido en un archivo temporal.
- Guardar el archivo temporal.
- Abrir el Archivo Temporal.

Te mando un ejemplo, el metodo lo asigne a un botoncito hecho con Beans, ademas debes suponer que dentro del jar tienes un directorio "/docs" y dentro de el un archivo "AGBase.pdf".

Espero te sirva de algo. (Si escribes a mi correo te mandare el proyecto hecho en NetBeans)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        try{
            //Creamos un archivo en la carpeta temporal de tu sistema operativo
            File temp = new File(System.getProperty("java.io.tmpdir") + "panchoTmp.pdf");
            //Creamos un flujo de entrada al cual asignamos el valor del PDF que esta dentro del JAR
            InputStream flujoEntrada = this.getClass().getResourceAsStream("/docs/AGBase.pdf");
            //Creamos un flujo de salida para poder escribir sobre el archivo temporal
            FileOutputStream flujoSalida = new FileOutputStream(temp);
            //Preparamos el temp para que se llene de la informacion de PDF dentro del jar
            FileWriter fw = new FileWriter(temp);
            //Creamos un arreglo de bytes generico que soporte un gran tamano 1KB * 512 B --> se usa para todo tipo de archivo  
            byte[] buffer = new byte[1024*512];
 
            int control; //para contar posiciones de byte
 
            //Mientras haya bytes por leer se ejecuta este bucle
            while ((control = flujoEntrada.read(buffer)) != -1){
                flujoSalida.write(buffer, 0, control);
            }
 
            //Cerramos y guardamos el archivo creado
            fw.close();
            flujoSalida.close();
            flujoEntrada.close();
 
            //Ahora ya tenemos en temp todo tu PDF descomprimido y lo podemos abrir
            Desktop.getDesktop().open(temp);
        } catch (IOException ex) {
            JOptionPane.showMessageDialog(this, "Ocurrio el siguiente problema: \n" + ex.getMessage());
        }
 
        //MUAJAJAJA
    }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Abrir PDF dentro de un JAR.

Publicado por Juan (1 intervención) el 29/11/2016 00:30:16
Hola amigo..se que este tema es viejo, pero me encuentro frente al mismo problema...copie tu codigo en un boton para activar un archivo , al correrlo en netbeans no funciona, o se a no logro abrir el archivo....la pregunta es...si genero el jar...ahi si debiese funcionar cierto?...si esta todo biem, saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar