Java - Problemas con classpath

 
Vista:

Problemas con classpath

Publicado por s0ck37 (17 intervenciones) el 12/10/2005 10:37:10
Hola:

He desarrollado una aplicación con Eclipse 3.0 que utiliza una base de datos hsql. He creado un instalador que copia todo lo necesario en el directorio destino, incluido el archivo hsqldb.jar, y crea un acceso directo que al ejecutarlo lanza la siguiente instruccion en linea de comando:

java -classpath .;hsqldb.jar -jar miAplicacion.jar

Al ejecutarlo me da una excepcion de que no puede abrir el driver. El codigo donde da la excepcion es:

try
{
Class.forName("org.hsqldb.jdbcDriver").newInstance();
}
catch(Exception e)
{
System.out.println("Error: no se puede cargar el driver");
}

No consigo saber que esta pasando porque en Eclipse se ejecuta perfecto. Alguien sabe si eclipse añade algo mas al classpath? o que debería hacer?

Un saludo y 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:Problemas con classpath

Publicado por ConsultoriaJava (59 intervenciones) el 12/10/2005 16:28:02
Detalle del problema:

Lo que te está pasando seguramente es que no estas lanzando la ejecucion desde la carpeta donde se encuentra el jar en cuestion.

Es decir, supongamos que tu jar está en

c:/libs/hsqldb.jar

Si tu lanzas la ejecucion desde c:/libs

c:/libs/java -classpath ".;hsqldb.jar" -jar miAplicacion.jar

entonces la JVM podrá encontrar el jar en la ruta desde donde se está lanzando la ejecución, sin embargo si lanzas la ejecucion así:

c:/java -classpath ".;hsqldb.jar" -jar miAplicacion.jar

enotnces la jvm buscara el jar en c: y por lo tanto no encontrará el driver.

Solución probable:

Para solucionar este problema indica la ruta completa de la libreria:

java -classpath ".;c:/libs/hsqldb.jar" -jar miAplicacion.jar

Esto se puede hacer de muchas otras formas, por ejemplo usando dos barras para indicar la raiz (imprescindible si estas en Linux).

Un saludo.

Respuesta proporcionada por consultores expertos en Java de http://www.consultoriajava.com
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:Problemas con classpath

Publicado por s0ck37 (17 intervenciones) el 13/10/2005 07:45:00
Ya había controlado el tema del path. Lo ejecuto con un archivo bat desde el directorio de la aplicación, donde también se encuentra el jar.

Sabes alguna forma para saber el comando exacto que está ejecutando el Eclipse? con todas las dependencias que añade, etc.?

Un saludo
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:Problemas con classpath

Publicado por Consultoriajava.com (59 intervenciones) el 13/10/2005 09:43:46
De momento yo mostraria informacion detallada de la excepcion que se produce para asegurarme de que el motivo del problema es el que piensas:

catch(Exception e)
{
e.printStackTrace();
}

Respuesta proporcionada por http://www.consultoriajava.com
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
sin imagen de perfil

RE:Problemas con classpath

Publicado por chuidiang (950 intervenciones) el 13/10/2005 14:39:55
Hola:

No estoy muy seguro, pero puedes probar a ver si es verdad.
Si ejecutas con la opcion -jar, no se hace mucho caso al classpath. Dentro de tu fichero jar, en el fichero de manifiesto, debes añadir una linea que ponga mas o menos esto

Class-path: hsqldb.jar

Si lo pones así, ambos jar deben estar en el mismo directorio. Podrías poner también un path relativo al sitio donde este tu jar.

Se bueno.
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