Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Ayuda, código funciona en el NetBeans (6.9.1), pero no en el Jar

Hola hola hola amigos foreros y programadores:

Me encuentro en una situación algo tensa, tengo que entregar un programa que he desarrollado en NetBeans 6.9.1, y me sucede lo siguiente: tengo un Menu con varios Items, y cada uno de éstos se encarga de levantar una ventana diferente dentro de la aplicación, y a pesar de que el código es muy semejante en cada caso, hay un Item en especial que no funciona cuando genero el ejecutable .JAR mediante Clean and Build, sin embargo, compilando y corriendo sobre el propio NetBeans el código SÍ funciona perfectamente. El código es el siguiente:

private void MenuItem_GruposSalidaActionPerformed(java.awt.event.ActionEvent evt) {

UI_GruposIndicadoresSalida_JDialog formIndicSalida = new UI_GruposIndicadoresSalida_JDialog(this, true);

formIndicSalida.setLocationRelativeTo(null);

formIndicSalida.setVisible(true);

}

Vuelvo a aclarar: el código que les acabo de poner funciona perfectamente dentro del NetBeans cuando compilo, pero no funciona en el fichero .JAR generado (es decir, al pinchar este Menu-Item no sucede absolutamente nada). Un dato: todas mis ventanas (excepto la ventana principal) son JDialog.

Un GigaSaludo y muchas gracias por cualquier ayuda que puedan brindar.

septiembre 20, 2016 | Unregistered CommenterYYanes

Suele suceder cuando la aplicación usa un recurso externo (una librería, por ejemplo), que falta en la distribución: el IDE puede encontrarla y usarla, pero el jar no.

¿Qué código usa el constructor de UI_GruposIndicadoresSalida_JDialog?. ¿Hay algún recurso externo involucrado?

septiembre 20, 2016 | Registered Commenterchoces

No, no hay ningún recurso externo relacionado, todo lo que hago es inicializar algunas variables (incluyendo una instancia de una clase de acceso a datos ADO), este es el código:

public UI_GruposIndicadoresSalida_JDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
userLoggeado = "";
valoresPredefinidosADO = new ValoresPredefinidos_ADO();
initComponents();
}

Muchas gracias por su interés.

septiembre 20, 2016 | Unregistered CommenterYYanes

Si no se lanzan excepciones, ni hay librerías externas de las que dependan esos constructores, es inevitable saber en qué línea se detiene la ejecución.
Usa System.out.println("test"); desde el comienzo, y descendiendo de cada vez, en cada constructor, a ver dónde se para.

septiembre 20, 2016 | Registered Commenterchoces

Hola amigos foreros!! Ya di con el asunto, y lo comentaré aquí por si alguien alguna vez presenta el mismo problema:

Les cuento que el problema no estaba en el código fuente, sino en los componentes visuales: había puesto en esa ventana algunos botones con íconos (a partir de imágenes .png en una carpeta fuente), pues bien, uno de esos botones perdía el vínculo con la imagen al generar el ejecutable .JAR, bastaba con quitarle el icono al botón, o simplemente volvérselo a crear para refrescar la referencia a la imagen, así de fácil.

Para encontrar el error que estaba dando el .jar, un amigo me sugirió que lo ejecutara mediante el cmd o terminal, mediante el siguiente comando:
java -jar elnombredetujar.jar
Así lo hice, y al ejecutarlo por ahí (sin cerrar la consola) me dirigí hasta el Menu-Item que debía abrir la ventana defectuosa, e inmediatamente en la consola se mostró el error que el programa me estaba dando, el cual se mostraba en forma de "NullPointerException".

De todos modos muchas gracias por su tiempo, por su ayuda, y por las lecturas realizadas a este tema, muchas gracias.
Un GigaSaludo!!!

septiembre 22, 2016 | Unregistered CommenterYYanes

"... no hay ningún recurso externo relacionado, todo lo que hago es inicializar algunas variables..."

Parece que finalmente sí había un recurso externo: "...había puesto en esa ventana algunos botones con íconos (a partir de imágenes .png en una carpeta fuente)..."

septiembre 22, 2016 | Registered Commenterchoces

Bueno, cuando me decías "un recurso externo relacionado" pensé que te deferías a alguna librería, o la llamada a algún un fichero.config, u otro recurso externo, jamás pensé (me faltó observación) que los iconos de los botones me fueran a dar problemas, jeje, ya que éstos están en la carpeta fuente que voy aumentando a medida que crece el diseño visual, y los incorporo a las interfaces y componentes mediande sus respectivas propiedades en el NetBeans.

septiembre 22, 2016 | Unregistered CommenterYYanes