Java - Crear .jar

 
Vista:

Crear .jar

Publicado por ivan (4 intervenciones) el 13/01/2007 12:36:02
Hola buenas, antes de nada queria presentarme ya que soy nuevo por aqui.
Queria plantearos mi cuestion que es la siguiente: Tengo una practica hecha de la universidad con el Jcreator, contiene 6 clases y he usado un package (en el cual estan todos los .class) para poder trabajar, pues bien queria entregar la practica en un .jar y estoy haciendo lo siguiente:
jar cfm fich.jar META-INF/MANIFEST.MF *.class

El archivo manifest contiene main-class: principal.class
pero el problema viene en que no me crea bien el fichero .jar me dice que no encuentra la clase main dentro de el y eso es asi porque mi main el compilador me lo tiene troceado en 14 partes, es decir, me tiene lo siguiente: principal$1.class principal$2.class, etc... ¿Como puedo hacer entonces para crear el .jar?
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:Crear .jar

Publicado por Rafa (83 intervenciones) el 13/01/2007 18:04:13
Bueno ya que usa JCreator va a ser más fácil yo usualmente lo que hago es primero crear el jar con los comandos que JCreator da por defecto( cvf $[PrjName].jar . ), cuando hago esto me crea un .jar que no funciona entonces lo descomprimo y edito el archivo MANIFEST.MF que está en la carpeta META-INFO lo puede abrir con cualquier editor de texto en este archvo se debería encontrar algo así:
Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
entonces lo que tiene que hacer es colocarse en la linea siguiente a la que empieza con Created-By . . . .
y escribir lo siguiente:
Main-Class: nombredeClase

IMPORTANTE el nombre de la clase va sin el .class y luego le da un enter guarda y sale
y luego vuelve a crear el jar con la herramienta de JCreator pero esta vez cambia los parámetros por los siguientes:
cfm fich.jar META-INF/MANIFEST.MF clase1.class clase2.class clase3.class
y así sucesivamente
se supone que en buena teoría debería de funcionar cualquier cosa me avisa
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:Crear .jar

Publicado por ivan (4 intervenciones) el 13/01/2007 18:35:11
He hecho todo lo que me comentas al pie de la letra y no consigo que funcione. Mira he probado lo siguiente:
La clase que contiene el metodo principal se llama TVClient.java, entonces al compilar dicho metodo me crea TVClient$1.class TVClient$2.class .... asi hasta TVClient$14.class y TVClient.class
Yo hago todo lo que comentas y sigue sin funcionar e intuyo que sera por esas "divisiones" que me crea el compilador del TVClient.class es que desde luego no lo entiendo. gracias por tu mensaje. A ver si somos capaces de sacarlo.
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:Crear .jar

Publicado por Oscar (78 intervenciones) el 13/01/2007 22:45:13
Hola,

Las clases que tienes TVClient$1.class TVClient$2.class, ... son clases anonimas. Que muy probablemente las estes usando para el manejo de eventos.

Para indicar cual es la clase principal solo incluye el nombre de la clase.(sin el .class)

main-class: tu.paquete.TVClient

Saludos
OScar
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:Crear .jar

Publicado por ivan (4 intervenciones) el 14/01/2007 13:17:42
El paquete que agregado a los ficheros java se denomina tutorvirtual, es decir, en cada clase pongo al comienzo lo siguiente: package tutorvirtual;
Por lo tanto y como me ha dicho Oscar, he puesto en el archivo MANIFEST lo siguiente:

Manifest-Version: 1.0
Created-By: 1.5.0_01 (Sun Microsystems Inc.)
Main-Class: tutorvirtual.TVClient
Y siento deciros que tampoco ha funcionado
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:Crear .jar

Publicado por Oscar (78 intervenciones) el 14/01/2007 19:29:19
Si abres el jar que estructura tiene?

Debe parecerse a algo asi:

META-INF/MANIFEST.MF
tutorvirtual/TVClient.class
tutorvirtual/TVClient$1.class
tutorvirtual/TVClient$2.class
tutorvirtual/....

Saludos
Oscar
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:Crear .jar

Publicado por Rafa (83 intervenciones) el 14/01/2007 20:51:01
Si todavía no le ha llegado al problema me encontré una página muy buena ( con el permiso del amigo Chuidiang, aunque yo creo que es bueno que los otros hablen bien de la página que alguien ¿no? )
Ahí le dejo esta página trate de combinar lo que yo traté de decirle con lo que hay en esa página nada más que en JCreator tiene que quitar en la línea de comandos la palabra jar, ya que Chuidiang hace de cuentas que se está trabajando con la herramienta que trae JDK, aunque al final usted es el que decide es lo mismo
aquí la tiene
http://www.chuidiang.com/chuwiki/index.php?title=Ficheros_jar
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:Crear .jar

Publicado por ivan (4 intervenciones) el 15/01/2007 13:08:08
Si yo veo el archivo .jar veo todos los archivos .class sin tener delante el tutorvirutal/ y el META-INF/MANIFEST.MF, es decir estan todos los archivos correctamente y me sigue diciendo que no encuentra el main, estoy ya desesperado....
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:Crear .jar

Publicado por Rafa (83 intervenciones) el 15/01/2007 20:43:36
Si pero el asunto es que los primeros argumentos que te da JCreator lo que hacen es empaquetar todos los .class y crear un archivo de manifiesto luego los argumentos que yo le di en una de las respuestas anteriores lo que le ordena es que incluya dentro del .jar en lugar del MANIFEST.MF el manifest al que le pusiste la clase principal, me imagino que el error que le da es el siguiente
Failed to load Main-class manifest attribute from "ruta en tu computadora del .jar"
Si este es el error que le da, la traducción es simple el archivo MANIFEST.MF no tiene ESCRITO EL NOMBRE DE LA CLASE PRINCIPAL SIN EL .CLASS Y UN ENTER
Otra vez los pasos: crear el jar con los argumentos por defecto que le da JCreator entonces le crea el .jar que le da el mensaje de error que escribí arriba luego de esto lo descomprime en la misma carpeta ( CON WinRar o WinZip ) en la que están todos los .class y .java y luego abre el MANIFEST.MF que se le descomprimió con el Bloc de notas y le agrega las lineas que le dije en la primera respuesta y despues guarda el MANIFEST.MF y sale del Bloc de notas después de esto vuelve a crear el jar pero esta vez cambia los argumentos que le pide JCreator y le escribe los siguientes:
cfm fich.jar META-INF/MANIFEST.MF clase1.class clase2.class clase3.class
( obviamente que si tiene 500 clases tiene que agregar las 500 ) y magia magia ahora sí le sirve nada más siga los pasos al pie de la letra y verá
Colega, si ya no puede hacerlo con esta explicación no tiene cuando!!!!!!!!!!!!!!
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:Crear .jar

Publicado por Oscar (78 intervenciones) el 16/01/2007 03:52:51
Las clases deben tener el paquete al que pertenecen. Es decir deben estar con todo y directorio. Si deseas enviame los .java a mi correo y te devuelvo el jar junto con una explicacion de como lo cree.

Saludos
Oscar
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:Crear .jar

Publicado por Iker (1 intervención) el 19/02/2007 16:04:09
Jar:
+Classes
+Las Clases del programa
+Clasee principal
+META-INF

Bien.En el Manifiesto se pone la classe principal. Al ejecutar el jar dice que no encuentra la classe principal y yo probe con esto:

1+Estraer a una carpeta el contenido del jar
2+Sacar la classe principal a la raiz dela carpeta

Quedaria hasi:

Jar:
+Classes
+Las Clases del programa
+META-INF
+Clasee principal

3+Con el mismo compresor guardar la nueva estructura.

Esto lo he probado con un programa muy sencillo, pero haber si vale.
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:Crear .jar

Publicado por carlos (1 intervención) el 16/06/2008 18:31:24
Bueno...hice lo pasos...pero ahora me sale el siguiente error " could not find the main class. program will exit.."..............no se que pasa....gracias 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

Crear .jar

Publicado por Thor (1 intervención) el 31/01/2013 04:05:21
mmm amigos ps yo solo cree el .jar y le di abrir con winrar y me meti ala carpeta meta-info y modifique el archivo como dice Rafa y listo problema resuelto!!
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