Embed de Applet en HTML

Li3cht

Hi, estoy teniendo problemas a la hora de embeddear en HTML un Applet que estoy desarrollando. El código es funcional ya que he probado un simple "Hello World"; el problema debe residir en el .jar que he creado ya que estamos hablando de múltiples .class y carpetas que alojan audio/imágenes...

Adjunto fotografía del .jar creado en linux mediante jar cvf:

El error que me da el navegador es: NoClassDefFoundError. No obstante, si en el código del tag applet le añado el nombre del package cambia a ClassNotFoundException.

He probado miles de códigos posteados en stackoverflow y otros sitios, así que como digo debe ser problema del .jar pero en teoría está "bien".

Código HTML:

spoiler

Cualquier ayuda o sugerencia es de agradecer, es para un proyecto del curso.

elkaoD

#1 no tienes que poner Principal.class sino la ruta estilo tld.package.ClassName:

E.g.: <applet archive="ImageIconApplet.jar" code="com.whitefang34.ImageIconApplet" />

En tu caso creo que quedaría como "Principal" a secas, aunque creo que es mala práctica lo de no tener la clase en un paquete (y probablemente por eso falla, en Android ya me pasó eso mismo, no podía ejecutar clases sin paquete).

Lo de poner Principal.class es para clases no empaquetadas en un.jar (disponibles directamente desde HTTP).

Por otro lado, ¿tiene la clase Principal los métodos adecuados para ser un main de un applet? Es decir, ¿extiende de JApplet y tiene un método init() de tipo public void?

1 respuesta
Li3cht

#2 He probado infinidad de códigos y formas.

  • Principal.class
  • Principal
  • franky_BF38.Principal.class
  • franky_BF38.Principal

Y no hay manera...
El código de Principal en teoría es correcto, te pego lo que preguntas (a todo esto, en Eclipse Run as todo va perfectamente):

Principal
LOc0

Así debería funcionarte:

<applet code="franky_BF38/Principal.class" archive="Franky.jar" width="1337" height="1337"></applet>

Otra cosa... ¿Has probado a firmar el .jar? Aparte de para acceder al sistema de ficheros había otros casos donde era necesario.

firmar_applet

Salu2 ;)

1 respuesta
Li3cht

#4 Hola, gracias por tu respuesta. Parece que con tu código ha hecho el amago de arrancar pero ahora sale NullPointerException con estos

Sospecho que es culpa de esto de firmar el .jar, ya me parecío verlo en este hilo de stackoverflow: http://stackoverflow.com/questions/1609638/nullpointerexception-when-trying-to-run-an-applet-of-multiple-classes

Los comandos que me adjuntas son solo para Linux?

Usuarios habituales

  • Li3cht
  • LOc0
  • elkaoD