mvnForum Homepage Bienvenido domingo  |  Terminar sesión   
  Búsqueda  
  Indice |  Temas Recientes |  Quién Está en Línea |  Lista de Usuarios |  Mi Perfil |  Búsqueda |  Ayuda


Ir a »
Total de mensajes en este tema: 4 [Eliminar este Tema] [Mover este Tema]
[Ańadir a Mis Favoritos] [Ańadir un aviso a este tema] [Publicar nuevo tema]
Autor
Tema Anterior Este tema ha sido visto 88 veces y tiene 3 respuestas Tema Siguiente
Masculino odomalo
Novato



Ingresó: Feb 25, 2004
Mensajes: 28
Estado: En línea

Adjuntar archivo   Editar este mensaje   como se crearía un ejecutable para el juego, por ejemplo Responder a este mensaje
Responder citando
[Eliminar este Tema]

Ya se que no es una pregunta del curso, pero me gustaría saber si se puede, y como se haría, crear un ejecutable del juego de yogi, o de cualquier programa en java, que por ejemplo esté en el escritorio y haciendo doble click sobre el se ejecute el programa o el juego. Yo estoy haciendo los programas con el eclipse, tiene alguna opción para crear el ejecutable?
[Jul 23, 2004 2:14:32 PM] Print Post    odomalo@yahoo.es Reportar mensaje ofensivo  Ir al inicio 
Masculino nacho
Miembro



Ingresó: Feb 1, 2004
Mensajes: 63
Estado: Desconectados

Adjuntar archivo   Editar este mensaje   Re: como se crearía un ejecutable para el juego, por ejemplo Responder a este mensaje
Responder citando
[Eliminar este mensaje]

La verdad es que pensé poner eso en el ejercicio, para que lo hicierais, pero como la herramienta para hacerlo no la hemos visto demasiado, preferí no hacerlo, ya que lleva algo más de trabajo.

PARA QUIEN QUIERA HACERLO (es opcional), os explico más o menos cómo se haría:

Para hacer un "ejecutable" Java, tenéis que hacer un fichero JAR que se autoejecute cuando se haga doble click sobre él.

Para crear un fichero JAR, ejecutamos el comando:

jar cvf <nombre_fichero.jar> <ficheros_a_incluir>

donde los <ficheros_a_incluir> pueden ser varios, separados por espacios, por ejemplo:

jar cvf miFichero.jar *.class *.jpg carpeta/*.gif

El problema está en que estos ficheros JAR no son de por sí autoejecutables, necesitaríamos ejecutar una clase interna utilizando el comando "java", como en una clase normal: añadiríamos el fichero JAR al classpath, y luego ejecutaríamos:

java nombrepaquete.nombreClase

Para hacer que un JAR sea autoejecutable, necesitamos añadir un ficherito de configuración (en texto) al JAR: creamos cualquier fichero de texto, y escribimos en él:

Main-Class: NombreDeLaClase <Intro>

Es importante lo del Intro. Luego generamos el JAR, añadiéndole este ficherito. Para eso lo ejecutamos así:

jar cvmf <nombre_fichero_texto> <nombre_fichero_JAR> <ficheros_a_incluir>

Así tenemos un JAR que podemos ejecutar de dos formas: haciendo dos clicks sobre él (la mayoría de sistemas operativos lo soportan), o bien de esta otra forma:

java -jar fichero.jar

En el caso del juego tenemos un ultimo PROBLEMA: las imágenes irían dentro del JAR, con lo que si hacemos "Toolkit.createImage(nombreFichero)", no nos la encontrará, porque está dentro del JAR, no en una carpeta. Para esto último, deberéis usar el método "getResourceAsStream", que se explica en el apartado de Entrada/Salida en el bloque 2, y transformarlo en un array de bytes... y etc, etc. Os pego aquí un método que carga una imagen usando esto:

public Image leeImagenDeJAR(String imagen)
{
InputStream in = getClass().getResourceAsStream(imagen);
int c;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Toolkit tk = Toolkit.getDefaultToolkit();

try
{
while( (c=in.read()) != -1 )
{
baos.write (c);
}
} catch (Exception e) {
e.printStackTrace();
}

byte [] datos = baos.toByteArray();
Image img = tk.createImage(datos,0,datos.length);

return img;
}



Se trataría de usarla para leer cada imagen del juego.
[Jul 23, 2004 2:39:29 PM] Print Post    iiborra@dccia.ua.es Reportar mensaje ofensivo  Ir al inicio 
Masculino odomalo
Novato



Ingresó: Feb 25, 2004
Mensajes: 28
Estado: En línea

Adjuntar archivo   Editar este mensaje   Re: como se crearía un ejecutable para el juego, por ejemplo Responder a este mensaje
Responder citando
[Eliminar este mensaje]

Hola, el fichero jar consigo hacerlo, pero al acerle doblr click me sale que "Could not find the main class. Program will exit"

Yo he creado el jar metiendole también el fichero ese txt, es un fichero que le he llamado main.txt y dentro tiene esto:

"Main-Class: Yogi.java <Intro>"

y ya está. El jar lo genero así:


"jar cvmf main.txt JuegoYogi,jar *.java *.class *.jpg *.png"

que estoy haciendo mal?
[Jul 23, 2004 4:34:43 PM] Print Post    odomalo@yahoo.es Reportar mensaje ofensivo  Ir al inicio 
Masculino nacho
Miembro



Ingresó: Feb 1, 2004
Mensajes: 63
Estado: Desconectados

Adjuntar archivo   Editar este mensaje   Re: como se crearía un ejecutable para el juego, por ejemplo Responder a este mensaje
Responder citando
[Eliminar este mensaje]

El "Main-Class" tiene que ser el nombre de la clase, no del fichero:

Main-Class: Yogi <Intro>

Y si tiene paquetes, la ruta completa con paquetes y subpaquetes:

Main-Class: paquete1.subpaquete1.Yogi <Intro>

También es muy importante el Intro, si no no cogerá la línea.
[Jul 24, 2004 2:56:38 AM] Print Post    iiborra@dccia.ua.es Reportar mensaje ofensivo  Ir al inicio 
[Versión imprimible] [Publicar nuevo tema]