problemas al ejecutar programas java

tamka
20 de Enero del 2006
Hola,

he instalado java en debian sarge con aptitude, y a la hora de ejecutar un programa previamente compilado en el mismo directorio de trabajo me muestra el siguiente mensaje:

pc1:~/Documentos/programación/Java>$java MesaMain
Internal error: caught an unexpected exception.
Please check your CLASSPATH and your installation.
java/lang/ExceptionInInitializerError
at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:772)
Abortado

datos curiosos:
cuando ejecuto a secas java funciona por lo que he descartado que se trate del path ya que en el tengo /usr/bin (que es el directorio donde se encuentra java).

Alquien sabe lo que quiere decir el mensaje y como solucionarlo???


muchas gracias

juamurex
20 de Enero del 2006
No estoy del todo seguro, pero prueba esto y me dices si funciona o no.

java ./MesaMain
o
./java MesaMain

puede que el problema no sea encontrar la ruta java sino la ruta del fichero a ejecutar, mira si en el path tienes incluido el directorio ".", es decir tienes en la path el directorio donde te encuentres sea cual sea.
Esto puedes averiguarlo con la instruccion set

Saludos.

Tamka
20 de Enero del 2006
te voy a decir por encima lo que tengo en el path definido en el archivo .bashrc
PATH=.:/usr/bin/:usr/lib: .....
tengo que incluir export path??


como puedes ver ya esta incluido el \".\"

y una pregunta para que es la instrucción set?

gracias

juamurex
20 de Enero del 2006
Hola,

la instruccion set es de consola o terminal como prefieras llamarlo, tanto para win como para linux sirver para ver multiples varias del sistema, como path, etc

Tamka
20 de Enero del 2006
Eric Mignot crees que es necesario el código, lo digo xq si copio el .class a el direcctorio /usr/bin y lo compilo desde /usr/bin funciona perfectamente

de todas formas lo intentaré poner hoy y ya te cuento mañana.

Gracias a toodos

Eric Mignot
20 de Enero del 2006
Hola,

Puedes intentar rodear tu codigo en otra classe con un catch Trowable para luego preguntar por la razon de la excepcion por una llama a getCause(). Algo como lo siguite :

public class Test
{
public Test()
{
try
{
MesaMain m = new MesaMain();
// cualquier codigo
}
catch (Throwable t)
{
System.out.println(t.getCause());
}
}
}