Problema ejecutando programas Java

Iniciado por zheo, 15 Abril 2004, 22:42 PM

0 Miembros y 1 Visitante están viendo este tema.

zheo

Vamos a ver, me he bajado el SDK de la página de SUN (el último que no es beta) y también la versión gratuita del JCreator (muy buena pinta)
Creo un proyecto vacío y hago el típico hola mundo tal que así:

public class main {

public static void main(String [] args){
 
  System.out.println("Hola mundo!");
}

}

El fichero se llama main.java ya que no podría ser de otra manera ;)

Le doy a build y compila perfectamente. Le doy a ejecutar y ejecuta perfectamente.

El problema viene si lo hago desde la ventana de comando. Si lo quiero compilar funciona bien, es decir, main.java lo compila bien y lo transforma en java.class (repito, desde línea de comandos)
Pero al ejecutarlo viene la hecatombe:
CitarException in thread "main" java.lang.NoClassDefFoundError: main

Más tarde, buscando un poco entre las opciones de ejecución del JCreator  veo que hay una casilla marcada llamada "use classpath" que hace que se agregen unos parámetros cuando se llama al ejecutable 'java.exe'
Estos parámetros son
Citar-classpath "$[ClassPath]" $[JavaClass]
lo que me hace pensar que hay que darle el path al intérprete java para que sepa dónde debe buscar las clases que usa mi programa.

En el caso de que lo que digo es cierto, ¿cuáles són esos directorios de clases? 
Es que no estoy en mi ordenador y no puedo hacer muchas mariconadas con él, así que prefiero esperar a que alguien me lo confirme. No se cuales son esos directorios porque como podeis ver, el JCreator utilizar variables para representar esos directorios y para línea de comandos no me vale :(

Un saludo y gracias anticipadas.
Sólo hay 10 tipos de personas: las que saben binario y las que no.

¿Quieres programar un videojuego? Si quieres unirte pulsa aqui

zheo

A ver, he mirado un poco más y parece que para el JCreator el path $[classpath] equivale a esto:

CitarC:\j2sdk1.4.2_04\jre\lib\rt.jar;
C:\j2sdk1.4.2_04\lib\dt.jar;
C:\j2sdk1.4.2_04\lib\tools.jar;
C:\j2sdk1.4.2_04\jre\lib\ext\dnsns.jar;
C:\j2sdk1.4.2_04\jre\lib\ext\ldapsec.jar;
C:\j2sdk1.4.2_04\jre\lib\ext\localedata.jar;
C:\j2sdk1.4.2_04\jre\lib\ext\sunjce_provider.jar

Lo pongo por si a alguien más le sirve.
Cuando tenga mi ordenador haré unas pruebas a ver qué clases son las que necesito para programas básicos en Java en modo consola; supongo que tendré que acabar añadiendolos directorios pertinentes a la variable PATH del SO, para poder ejecutarlo tranquilamente desde línea de comandos.
Sólo hay 10 tipos de personas: las que saben binario y las que no.

¿Quieres programar un videojuego? Si quieres unirte pulsa aqui

Ragnarok

si no me equivoco tienes que incluir en el path la ruta de los ejecutables java.exe y javac.exe. Además tienes que incluir las variables de entorno javapath y classpath. Todo esto mucho mejor explicado está en la página 3 sección 1.2.3 de "aprenda java como si estuviera en 1º".

Por cierto, me he descargado el sdk de java pero en la página de sun me hice un lío y he descargado dos cosas, un sdk que ocupa 88,2 MB y se llama "j2sdk-1_4_2-nb-3_5_1-bin-windows" y otro que ocupa 48,2 MB y se llama "j2sdk-1_4_2_03-windows-i586-p", el segundo no estoy seguro de que sea el sdk porque por todas partes ponía j2EE, pero no sé que es eso.

Si el link no te va es porque estoy intentando subirlo a mi página, porque no he conseguido reencontrarlo en internet.
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones

zheo

El segundo es el SDK Enterprise/Server, que se supone es para realizar aplicaciones oriantada más bien hacia las empresas.

Respecto al libro de momento me baja muy bien, si tengo algún problema editaré este mensaje. Muchas gracias (voy a acabar haciendo colección de libros de "aprenda x como si estubiera en primero" xDD
Sólo hay 10 tipos de personas: las que saben binario y las que no.

¿Quieres programar un videojuego? Si quieres unirte pulsa aqui

regedit

primero,tienes q bajarte el java sdk para poder hacer la compilacion y eso.
Solo el sdk tiene el javac. Y luego pones la ruta de la carpeta

zheo

Ya, elSDK estaba instalado, si no nunca hubiera podido compilar el programa, y como digo en el mensaje, eso si lo pude hacer dentro del entorno JCReator y en línea de comandos; el problema era saber cúales eran los directorios necesarios para las clases de Java, y poder ejecutar correctamente el programa en línea de comandos. Para eso tengo que añadirlos a la variable PATH del sistema.

Un saludo.
Sólo hay 10 tipos de personas: las que saben binario y las que no.

¿Quieres programar un videojuego? Si quieres unirte pulsa aqui