Java - Error raro en el JaR

 
Vista:

Error raro en el JaR

Publicado por Zebensui (8 intervenciones) el 12/04/2007 17:14:41
Hola, me he creado un proyecto con varios paquetes(pkg_vista,pkg_datos,..)y todo ha ido perfecto hasta el último paso. Al crear el archivo JAR me sale el siguiente error:

Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver
at pkg_prueba_datos.ConexionBD.<init>(ConexionBD.java:33)
at pkg_prueba.Principal.<init>(Principal.java:29)
at pkg_prueba.Principal.main(Principal.java:54)
Lo curioso es que no aparecen en el IDE(JDeveloper) al compilarlo. Las lineas en mi aplicacion son tal que así:

33->DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
29->oControl.setOBD(new ConexionBD("Prueba",Datos de conexion del LOG);
54->new Principal();(Aquí estamos en la primera linea de código de ejecucion del programa,dentro del jbinit)

El JAR lo he hecho tanto por el JDEV como por comando creando mi propio archivo manifest.
Se que puede ser algun problema de librerías o algo de eso(ahí es precisamente donde estoy bastante flojo).
Si alguien me pudiese ayudar se lo agradecería. 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

RE:Error raro en el JaR

Publicado por Himura (184 intervenciones) el 12/04/2007 17:26:04
Hola,

Tu JAR esta bien hecho, supongo que el error sale cuando ejecutas tu aplicación por afuera, y es por que te falta la clase que hace la conexión a la base de datos de oracle.

Puedes hacer dos cosas:

1. Deshacer el JAR donde viene la clase que hace la conexión y meterla en tu JAR.

2. Poner el JAR de Oracle en JREHome/lib/ext para que cargue el driver cuando ejecutes tu aplicación.

Saludos
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

RE:Error raro en el JaR

Publicado por Zeben (8 intervenciones) el 12/04/2007 18:47:53
Ok, me ha servido bastante. Ahora por lo menos me crea el LOG con algo de información, pero no la esperada:

Error, realizarConexionBD, Automaticos; The url cannot be null

Se que es un error típico, pero no lo entiendo bien:
Mi cadena para cargar la URL es la siguiente :

jdbc:oracle:thin:@localhost:1521:XE

En la aplicación me funciona,al ejecutarla desde afuera no!!Está claro que no la carga bien.

Como información chorra adicional, decir que la base de datos se encuentra en el mismo equipo que la aplicacion(vamos, que no uso servidor).
Pues nada, espero que sea la última piedra para acabar esto ya.

Gracias de antemano por la ayuda.
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

RE:Error raro en el JaR

Publicado por angel (537 intervenciones) el 13/04/2007 08:01:29
Pues por lo que parece no le llega la cadena de conexion...tienes la cadena de conexion escrita directamente n tu codigo o desde donde la lees?
Intenta verificar que le esta llegando la url correcta al getConnection(url)......

Saludos
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

RE:Error raro en el JaR

Publicado por Zeben (8 intervenciones) el 13/04/2007 10:59:35
Pues en principio la cogía de un archivo properties, pero al hacer el jar como que no lo encontraba, entonces la metí a pelo, es decir:

literalConexion = "jdbc:oracle:thin:@localhost:1521:XE";

y en el LOG me indica que no encuentra URL. La linea que creo que falla es:

conexion = DriverManager.getConnection(literalConexion, nombreUsuario, claveUsuario);

Lo raro es que ejecutandolo desde el JDev va perfectamente, y me conecta, inserta, extrae, etc. .... Alguna idea??

Al compilarlo desde cmd aparecen errores que creo q son de conexion tb:

Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver
at pkg_prueba_datos.ConexionBD.<init>(ConexionBD.java:33)
at pkg_prueba.Principal.<init>(Principal.java:29)
at pkg_prueba.Principal.main(Principal.java:54)

Gracias por la ayuda prestada-.
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

RE:Error raro en el JaR

Publicado por angel (537 intervenciones) el 13/04/2007 11:15:19
El erro que te muestra es que no esta encontrando el driver de Oracle para la conexion a al base de datos. Asegurate de que esta dentro d tu jar..y que lo tienes configurado en el classpath o bien.........pon el jar. del driver d oracle en l mismo directorio dond tngas tu jar..creo k asi podria funcionar.

Saludos
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

RE:Error raro en el JaR

Publicado por Zeben (8 intervenciones) el 13/04/2007 12:40:07
Hola de nuevo Angel.
El classes12.jar debe ser el driver por que básicamente es el que uso en el proyecto y también es el que cargo en el jasperReport para la conexion con la misma base de datos.
En el classpath no lo tengo, pero si que lo metí dentro de la misma carpera que mi jar...con mal resultado;y también lo metí dentro del propio jar... con idéntico resultado.
La verdad es que no se que puede ser.¿Que es lo que debería tener en el classpath?(he metido ya tantas rutas que no se si generan conflictos)
Weno, cualquier ayuda será bienvenida. Saludos y gracias de nuevo
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

RE:Error raro en el JaR

Publicado por angel (537 intervenciones) el 13/04/2007 17:50:14
Estas seguro que en ese jar estan las clases jdbc para oracle.???
Por si acaso podrias bajarte un driver de esta url y comprobar si con el funciona..
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html

Saludos
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

RE:Error raro en el JaR

Publicado por Zeben (8 intervenciones) el 13/04/2007 18:49:57
Si están pero he visto un fallo; al ser la base de datos Oracle XE no funciona con la JDK 1.5(versión que tenía instalada) ni es compatible con el driver classes12.jar.
Así que he hecho los siguientes arreglos:
Instalación de JDK1.4
En el fichero lib del JDeveloper he sustituido un driver por otro.
El segundo paso me suena a chapuza y de hecho lo ha sido.Ahora me sale en el compilador del IDE el mismo mensaje que apadecía en la ventana de comandos:
can´t not acces class oracle.jdbc.driver.OracleDriver

Me lo tomo como una buena noricia ya que supongo que tras 5 post voy cercando el error(lo tengo acojonado).
Ah! También sustituí el driver en el jar que me había creado(por ver si cuadraba algo) pero me ha salido un Fatal Error que daba hasta miedo(supongo que ya se había configurado todo para el driver viejo y no había manera de engañarlo).

El error sale en la importación de la librería
--> import oracle.jdbc.driver.*;
y en la mítica sentencia
->DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());

Weno, ahí lo dejo. Cualquier rayo de esperanza no duden en indicarmelo. Sobre todo si saben como hacer que tire el Develop con el otro driver.
Mil gracias de nuevo.
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

RE:Error raro en el JaR

Publicado por Zeben (8 intervenciones) el 13/04/2007 18:49:59
Si están pero he visto un fallo; al ser la base de datos Oracle XE no funciona con la JDK 1.5(versión que tenía instalada) ni es compatible con el driver classes12.jar.
Así que he hecho los siguientes arreglos:
Instalación de JDK1.4
En el fichero lib del JDeveloper he sustituido un driver por otro.
El segundo paso me suena a chapuza y de hecho lo ha sido.Ahora me sale en el compilador del IDE el mismo mensaje que apadecía en la ventana de comandos:
can´t not acces class oracle.jdbc.driver.OracleDriver

Me lo tomo como una buena noricia ya que supongo que tras 5 post voy cercando el error(lo tengo acojonado).
Ah! También sustituí el driver en el jar que me había creado(por ver si cuadraba algo) pero me ha salido un Fatal Error que daba hasta miedo(supongo que ya se había configurado todo para el driver viejo y no había manera de engañarlo).

El error sale en la importación de la librería
--> import oracle.jdbc.driver.*;
y en la mítica sentencia
->DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());

Weno, ahí lo dejo. Cualquier rayo de esperanza no duden en indicarmelo. Sobre todo si saben como hacer que tire el Develop con el otro driver.
Mil gracias de nuevo.
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