Foros del Web » Programación para mayores de 30 ;) » Java »

Empaquetar en java

Estas en el tema de Empaquetar en java en el foro de Java en Foros del Web. Buenas noches, tengo una pregunta En netbeans tengo un programa que me funciona muy bien pero cuando lo empaqueté y lo dejé en la carpeta ...
  #1 (permalink)  
Antiguo 16/07/2013, 19:28
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 11 años
Puntos: 2
Empaquetar en java

Buenas noches, tengo una pregunta

En netbeans tengo un programa que me funciona muy bien pero cuando lo empaqueté y lo dejé en la carpeta dist ya no funciona, es decir aparece la interfaz y todo, tal y como lo tengo en netbeans pero no me deja ingresar los datos a la base de datos como si lo puedo hacer en el netbeans.

podría alguien decirme que hice de mal a la hora de empaquetar la aplicación ?

uso MySQL 5.5 y envió los datos por medio de jdbc.
  #2 (permalink)  
Antiguo 16/07/2013, 22:41
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Empaquetar en java

Arranca tu programa empaquetado desde una línea de comandos, así podrás ver el error exacto.

En cualquier caso, uno de los errores más típicos es no llevar junto con tu jar el jar conector de mysql o cualquier otro jar del que dependas. Cuando empaquetas tu jar y está en el directorio dist ¿donde está el jar con el conector de MySQL?

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 18/07/2013, 08:12
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 11 años
Puntos: 2
Respuesta: Empaquetar en java

Déjame ver si entendí...

Para que mi aplicación empaquetada pueda correr e ingresar datos como lo hacia cuando no estaba empaquetada, lo que tenia que hacer para que funcionara bien era empaquetar también el jar de las bibliotecas que uso como la del mysql o la de jfreechart.
Entendido.

y en el caso en que yo quiera guardar la aplicación en un CD y llevarlo a otra pc, "sabiendo que tiene instalado el mysql" ¿como hago para no tener que crear nuevamente la base de datos y las tablas como las tenia creadas en la pc, desde donde copie la aplicación?

osea ¿como hago para que al instalar la aplicación en la nueva pc, se creen la base de datos, las tablas y los procedimientos que tenia para que funcionara la aplicación tal y como funcionaba en el otro pc raíz?
  #4 (permalink)  
Antiguo 19/07/2013, 03:20
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Empaquetar en java

Hola:

No, los jar no tienes que meterlos dentro de tu jar, deben ir por separado. Lo habitual es hacer un zip con todos los jar (el tuyo y de los que dependes) y la "instalación" consiste en desempaquetar el zip en algún lado.

Si MySQL ya está instalado en otro PC y un usuario quiere instalar tu aplicación, lo normal es que tu aplicación venga con un fichero de configuración en el que se escriban host donde esta la base de datos (localhost habitualmente), puerto de conexión (3306 por defecto para MySQL), nombre de la base de datos a la que conectarse, usuario y password). El usuario debe editar ese fichero y modificar los campos, luego arrancar tu aplicación. Tu aplicación, al arrancar, debe conectarse y verificar si ya existen o no las tablas, si no existen, debe crearlas.

Si lo quieres hacer más amigable, el fichero de configuración sigue valiendo, pero para evitar que el usuario tenga que editarlo a mano, tu aplicación debe leerlo y si no puede conectarse con la base de datos con lo que hay ahí escrito, debe mostrar una ventana al usuario para pedirle estos datos de conexión y cuando el usuario los introduzca, salvarlos en el fichero de configuración. O, por seguridad y que no esté la password en un fichero, puedes pedir siempre este dato. Las tablas tienes que seguir creándolas desde tu programa si no existen.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 19/07/2013, 04:38
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 1 mes
Puntos: 33
Respuesta: Empaquetar en java

Hola,

Yo tenía problemas con estas cosas de "jarception" (jar dentro de jar), y buscando encontré un plug-in de Eclipse (supongo que vale para netbeans también) que se llama "FatJar"

Éste te mete en un solo JAR todo lo que necesites para que lo que se genere sea tipo "standalone", es decir, no tendrás que preocuparte de dónde tienes los otros jar...


Espero que te pueda servir.

Un saludo!
  #6 (permalink)  
Antiguo 19/07/2013, 09:28
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 11 años
Puntos: 2
Respuesta: Empaquetar en java

Hola,

¿chuidiang lo que me quieres decir es que si en la otra maquina únicamente esta instalado mysql y no tiene base de datos, ni tablas, ni procedimientos entonces tengo que hacerlo nuevamente todo?

esto es lógico pero pensé que podría encontrar una biblioteca la cual pudiera ahorrarme este rollo.

¿ existe algún query que me deje hacer una copia espejo de absolutamente todo lo que hice en la base de datos indicada y luego pasarla a texto para nuevamente pasarla a mysql pero en la otra pc ?

¿o esto lo puede hacer el jar que dice mi grato compañero DoHITB?

Última edición por dacroma; 19/07/2013 a las 09:35
  #7 (permalink)  
Antiguo 19/07/2013, 09:49
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Empaquetar en java

Hola:

El jar que dice DoHITB no tiene nada que ver con base de datos. Hay varias utilidades, como OneJar, la que menciona DOHITB y otras que permiten meter todos los jar dentro de un jar y eso no tiene nada que ver con base de datos.

Si en MySQL no hay tablas hay que crearlas. Puedes hacerlo a mano, que supongo que es lo que quieres evitar. Puedes hacerlo con código java que es una opción cómoda para el usuario de tu programa, pero que tú tienes que codificar.

La tercera opción, que quizás se parece más a lo que buscas, es usar el comando mysqldump en la base de datos original de forma que ese comando dejaría en un fichero de texto todas las sentencias sql necesarias para crear las tablas y/o insertar los datos. Este tipo de ficheros suele servir de backup de la base de datos. Luego, en la base de datos de destino, con un cliente mysql, se puede ejecutar el contenido del fichero, restaurándose las tablas y/o datos. También tu programa java podría ejecutar los comandos de ese fichero, leyendo el fichero y ejecutando cada sentencia SQL.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #8 (permalink)  
Antiguo 19/07/2013, 11:17
 
Fecha de Ingreso: mayo-2013
Ubicación: bogota
Mensajes: 157
Antigüedad: 11 años
Puntos: 2
Respuesta: Empaquetar en java

Ok entonces la idea de hacer una copia espejo de la base de datos no estaría mal.

haré la copia para ver como me va.

De antemano les pido que perdonen mi ignorancia.
Muchas gracias.
  #9 (permalink)  
Antiguo 22/07/2013, 20:15
 
Fecha de Ingreso: julio-2013
Mensajes: 9
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Empaquetar en java

usa MySQL Administrator para respaldar la base de datos y de ahi la pasas a la otra computadora, para usarla, con el mismo Administrator la cargas en MySQL y ya.

Etiquetas: mysql, netbeans, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:20.