Foros del Web » Programación para mayores de 30 ;) » Java »

k pasa con los jar!!!

Estas en el tema de k pasa con los jar!!! en el foro de Java en Foros del Web. Hola a todos, ahí va el problemilla: Tengo un programilla, que se ejecuta bien en ms-dos mediante java, pero ahora bien, hago el .jar y ...
  #1 (permalink)  
Antiguo 25/04/2003, 07:06
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 22 años
Puntos: 0
k pasa con los jar!!!

Hola a todos, ahí va el problemilla:

Tengo un programilla, que se ejecuta bien en ms-dos mediante java, pero ahora bien, hago el .jar y al intentar ejecutarlo me da un error. El manifest esta bien, y yo no se que puede ser.

Se agradecen sugerencias, y si alguien kiere el código para verlo yo se lo paso.

Gracias.
  #2 (permalink)  
Antiguo 25/04/2003, 11:00
Avatar de kripton  
Fecha de Ingreso: diciembre-2002
Ubicación: Zaragoza
Mensajes: 296
Antigüedad: 21 años, 4 meses
Puntos: 0
Hola Mosiah!!!

Supongo que para ejecutar el .jar haras:
Código:
java -jar archivo.jar
y que el manifest dentro del jar lo metes dentro de una carpeta meta-inf y tiene una pinta simiar a este:

Código:
Manifest-Version: 2.0
Main-Class: org.argouml.application.Main
Class-Path: xerces.jar jaxp.jar crimson.jar parser.jar xml4j.jar nsuml.jar ocl-argo.jar gef-0.9.6.jar antlrall.jar log4j.jar jh.jar
Created-By: 1.2 (Sun Microsystems Inc.) 

Name: org/argouml/application/
Specification-Title: ArgoUML
Specification-Version: 0.12
Specification-Vendor: University of California
Implementation-Vendor: University of California
Implementation-Version: 0.12
Implementation-Title: ArgoUML
Recuerda poner los paquetes en el Main-Class

Bueno, que si aun así no te aclaras, estaría bien que posteases tu manifest para poder ayudarte mejor .

Suerte,
un saludo,
kripton
  #3 (permalink)  
Antiguo 25/04/2003, 11:18
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 22 años
Puntos: 0
Bueno, ahí va el manifest:

Main-Class: Princ

Donde Princ es la clase que tiene el main, y no esta dentro de ningun paquete. Y así, por lo menos con programillas simples si funciona

Y este es el error que me da al ejecutar el jar (como tu dices):

Exception in thread "main" java.lang.NoClassDefFoundError: FrameP$1
at FrameP.<init>(FrameP.java:35)
at Princ.main(Princ.java:3)

Y FrameP es el frame de presentación del programilla, en la linea 35 de FrameP no hay nada extraño que yo vea y en la 3 de Princ es donde se llama al constructor de Princ.

Venga, espero que me puedas hechar un cable.

Gracias
  #4 (permalink)  
Antiguo 25/04/2003, 12:17
Avatar de kripton  
Fecha de Ingreso: diciembre-2002
Ubicación: Zaragoza
Mensajes: 296
Antigüedad: 21 años, 4 meses
Puntos: 0
Tiene toda la pinta de que al .jar le falta algun .class que necesita o que utiliza alguna libreria externa que no has declarado en el Class-Path del manifest (en tiempo de ejecución las librerias aqui declaradas deberían estar junto al .jar ejecutable)

Pero para poder afirmarlo necesitaría revisar el código

De todo modos podrías descartar algun otro problema si compilas la siguiente clase:

Código:
public class HolaMundo {
    public static void main(String[] args) {
        System.out.println("HOLA MUNDO");
    }
}
Creas un HolaMundo.jar que contenga
HolaMundo.class
meta-inf\Manifest.mf

Y el contenido del manifest sería
Manifest-Version: 1.0
Created-By: 1.4.0_01 (Sun Microsystems Inc.)
Main-Class: HolaMundo

Finalmente ejecutamos

Código:
java -jar HolaMundo.jar
Si esto te funciona tiene que ser alguno de los problemillas que te comentaba al principio.

Un saludo,
kripton
  #5 (permalink)  
Antiguo 25/04/2003, 12:44
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 22 años
Puntos: 0
Si, eso me funciona, pero si se ejecuta el programa con
java Princ

No se tendría que poder ejecutar tambien el jar?
  #6 (permalink)  
Antiguo 25/04/2003, 13:08
Avatar de kripton  
Fecha de Ingreso: diciembre-2002
Ubicación: Zaragoza
Mensajes: 296
Antigüedad: 21 años, 4 meses
Puntos: 0
En teoria si, pero no siempre es lo que parece

Si es una única clase postea el código y le echo un ojo, o sino me mandas algun privado.

A tu eleccion lo dejo,
saludos
kripton
  #7 (permalink)  
Antiguo 26/04/2003, 04:59
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 22 años
Puntos: 0
No te puedo postear el código porque son 5 clases y tienen interfaz gráfica (que mete bastante código).

Pero bueno, te comento:
La clase Princ solo tiene una llamada al contructor de FrameP, que el el que hace el frame de presentación, y ahí es donde da 1 error al ejecutar el .jar. El otro error, la verdad, es que no le encuentro ningún sentido, ya que esta en una parte del código que no tendría que dar ningún error (que yo sepa).

Si quieres me pasas tu e-mail y así te puedo enviar los ficheros para que puedas verlos.

  #8 (permalink)  
Antiguo 26/04/2003, 08:11
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 22 años
Puntos: 0
Bueno, el problema ya esta resuelto.

Resulta que al compilar una serie de ficheros .java no solo se crean los .class correspondientes con los nombres de los .java, sino que se crean otros que guardan las dependencias entre las clases (o algo así, yo no estoy muy enterado). El caso es que yo no metia esos ficheros en el .jar y por eso no se me ejecutava.

Espero que sirva de ayuda a alguien , y:

Gracias Kripton
  #9 (permalink)  
Antiguo 26/04/2003, 08:17
Avatar de kripton  
Fecha de Ingreso: diciembre-2002
Ubicación: Zaragoza
Mensajes: 296
Antigüedad: 21 años, 4 meses
Puntos: 0
Ha sido un placer poder ayudarte

Si se te resiste alguna otra cosilla por aqui estamos.

Suerte,

un saludo,
kripton
  #10 (permalink)  
Antiguo 19/11/2007, 15:36
 
Fecha de Ingreso: noviembre-2007
Mensajes: 12
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: k pasa con los jar!!!

hola, me pasa lo mismo, no puedo ejecutar el .jar pq no encuentra el .main y no se como arreglarlo, incluso me bajado un programa para crear .exe , pèro como se crean a partir del .jar dan el mismo error. podrian ayudarme?
  #11 (permalink)  
Antiguo 19/11/2007, 16:22
 
Fecha de Ingreso: octubre-2007
Mensajes: 13
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: k pasa con los jar!!!

Cita:
Iniciado por alba13 Ver Mensaje
hola, me pasa lo mismo, no puedo ejecutar el .jar pq no encuentra el .main y no se como arreglarlo

Hola!

Asegurate de que tu clase principal contenga el metodo:
Código PHP:
public static void main(String[] args) {...} 
Un saludo!
  #12 (permalink)  
Antiguo 20/11/2007, 01:09
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: k pasa con los jar!!!

Para otra vez, la clave de todo está aquí:

Cita:
Iniciado por Mosiah Ver Mensaje
Exception in thread "main" java.lang.NoClassDefFoundError: FrameP$1
at FrameP.<init>(FrameP.java:35)
at Princ.main(Princ.java:3)
Cuando Java tiene clases anonimas dentro de una clase (como ActionListeners para botones, menus, eventos de cerrar ventana...) crea ficheros .class con el nombre de la clase original + "$" + numero y esos .class tambien hay que añadirlos en el .jar, ya que son parte del programa compilado.

Y lo que dice el mensaje de error es precisamente que falta una clase auxiliar de FrameP.

S!
  #13 (permalink)  
Antiguo 20/11/2007, 06:31
 
Fecha de Ingreso: noviembre-2007
Mensajes: 12
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: k pasa con los jar!!!

y me podriais indicar como lo añado con el netbeans?
  #14 (permalink)  
Antiguo 20/11/2007, 06:50
 
Fecha de Ingreso: noviembre-2007
Mensajes: 12
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: k pasa con los jar!!!

ya lo he solucionado. no se como pero si, esta. he probado con todo lo que ponia por aki. muchas gracias a todos.
  #15 (permalink)  
Antiguo 24/03/2008, 17:03
 
Fecha de Ingreso: marzo-2008
Mensajes: 1
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Re: k pasa con los jar!!!

Hola a todos!!
Yo estoy empezando a trabajar con los archivos con extensión "jar". Mi duda es : ¿siempre que quiera crear un archivo con extansión jar debo incluir en mi clase principal el metodo main?
La duda me surge porque estoy usando jwt (java wireless tolkit o mejor conocido como J2ME) y este me genera un archivo JAR y otro JAD. Pero en jwt no se usa el main en el archivo java.
  #16 (permalink)  
Antiguo 25/03/2008, 02:13
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: k pasa con los jar!!!

La clase principal y el metodo main es para ejecutar aplicaciones usando java -jar fichero.jar. Como en JWT no se ejecutan las aplicaciones así, pues.... no.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:54.