Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Alaric en 17 Junio 2015, 15:22 pm



Título: panelAvatarChooser Error Al generar JAR
Publicado por: Alaric en 17 Junio 2015, 15:22 pm
Bueno tengo un problema al generar un JAR en netbeans
Primero creo un jframe con un Escritoriopanel,Boton y direcciono a un JInternalFrame
en el pongo un panelAvatarChooser lleno las imagenes , guardo y ejecuto en el netbeans me corre normal EL PROBLEMA ES CUANDO GENERO EL JAR EJECUTO PRESIONO EL BOTON Y NO ME SALE EL JInternalFrame

me di cuenta k si saco la funcion que llena las imagenes genero el jar presiono el boton y me sale el JInternalFrame y obviamente no me sale las imagenes

aqui les dejo mi programa prueba k ise en rar
https://mega.co.nz/#!eclmSQaY!oAex0FF77tKH2gX778at-HMnvjEvIBmwgXcsQSfeB48 (https://mega.co.nz/#!eclmSQaY!oAex0FF77tKH2gX778at-HMnvjEvIBmwgXcsQSfeB48)

NewJFrame - BOTON

Código
  1. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  2.        this.jDesktopPane1.removeAll();
  3.        FrCompuestoVAyVF JHingreso = new FrCompuestoVAyVF();
  4.        this.jDesktopPane1.add(JHingreso);
  5.        JHingreso.setVisible(true);        // para el JInternalFrame
  6.  
  7. //        VAyVF in =new VAyVF();// para el jframe
  8. //        in.setVisible(true);
  9.    }
JInternalFrame
Código
  1. public class FrCompuestoVAyVF extends javax.swing.JInternalFrame {
  2.    /**
  3.      * Creates new form FrCompuestoVAyVF
  4.      */
  5.    public FrCompuestoVAyVF() {
  6.        initComponents();
  7.     llenarMenu();//quitando esta funcion, genero el jar y si me funciona pero obviamente no con las imagenes
  8.        EjecucionTabla();
  9.        Desahabilitar();
  10.  
  11.    }
  12.  
  13.  
  14.  
  15.    public void llenarMenu(){
  16.    List<Avatar> avatars =new ArrayList<Avatar>();
  17.    avatars.add(new Avatar("Valor Presente",loadImage("/img/va.png")));
  18.    avatars.add(new Avatar("Valor Presente Capitalizable",loadImage("/img/va2.png")));
  19.    avatars.add(new Avatar("Valor Futuro",loadImage("/img/VF1.png")));
  20.    avatars.add(new Avatar("Valor Futuro Capitalizable",loadImage("/img/vf2.png")));
  21.    avatars.add(new Avatar("Salir",loadImage("/img/salir.png")));
  22.    avatars.add(new Avatar("Salir",loadImage("/img/salir.png")));
  23.  
  24.  
  25.    panelAvatarChooser1.setAvatars(avatars);
  26.    }
  27.  
  28.    public static Image loadImage(String filename){
  29.        try {
  30.            return ImageIO.read(FrCompuestoVAyVF.class.getResource(filename));
  31.        } catch (Exception e) {
  32.            return null;
  33.        }
  34.  
  35.    }
  36.  


Título: Re: panelAvatarChooser Error Al generar JAR
Publicado por: Usuario Invitado en 17 Junio 2015, 22:05 pm
Ejecútalo el JAR mediante la shell, si al presionar el botón te muestra el rastreo de pila (en la shell) con un IOException, es porque estás cargando mal la ruta.

Por ejemplo, si tienes tu clase Main en el paquete main y las imagenes en resources/img, tendrías que hacer:

Código
  1. Main.getClass().getResource("../resources/img/imagen-1.jpg");

La razón por la cual muestra las imágenes cuando ejecutas desde NetBeans y no cuando ejecutas el JAR, es porque cuando lo ejecutas desde NetBeans éste carga la ruta absoluta, por ejemplo (c://users/tu_user/documents/NetBeansProjects/tu_proyecto/resources/img/imagen-1.jpg), entonces, cuando tu ejecutas el JAR en otra ubicación, obviamente no las encontrará y lanzará un IOException informando que no ha sido posible leer dicha ruta.


Saludos.


Título: Re: panelAvatarChooser Error Al generar JAR
Publicado por: Alaric en 20 Junio 2015, 17:47 pm
tiene razon en que la ruta de la imagen esta mal por eso no carga la imagen y me bota el null
cuando cambio la ruta ../resources por la direccion en donde esta el jar entonces en el netbeans es obviamente que me sale error entonces porque tb me sale error en el jar si esta en la posicion donde se ubica el jar
(http://www.subeimagenes.com/img/1-1355193.png)
ejecuto desde el jar y antes puse un mensaje de error en la Exception
(http://www.subeimagenes.com/img/2-1355195.png)

al principio ejecutando desde netbeans
(http://www.subeimagenes.com/img/3-1355196.png)