Obtengo la siguiente excepción cuando bash ejecutar el applet:
load: class MyApplet not found. java.lang.ClassNotFoundException: MyApplet at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read1(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) at java.net.HttpURLConnection.getResponseCode(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) ... 9 more Exception: java.lang.ClassNotFoundException: MyApplet
código de applet:
import javax.swing.*; import java.awt.*; public class MyApplet extends JApplet { public JFrame frame; public JPanel panel; public JButton button; public void init() { frame = new JFrame(); panel = new JPanel(); button = new JButton("click me "); panel.setBackground(Color.RED); panel.add(button); frame.add(panel); frame.setSize(300,300); frame.setVisible(true); } }
código HTML :
El archivo JAR.jar contiene un paquete Appletpackage y este paquete contiene un archivo de clase llamado MyApplet.class
¿Por qué recibo esta excepción? ¿He cometido el error?
El parámetro de archive
se resuelve en relación con el parámetro de codebase
. Entonces, en su caso, el complemento buscará un archivo MyApplet.class
incluido en un archivo AppletPackage/JAR.jar
.
Debe cambiar esto a lo siguiente:
Esto se resolverá en AppletPackage/MyApplet.class
dentro de JAR.jar
en el mismo directorio que el archivo HTML.
Este es un bash de abordar el mensaje de error informado en un comentario a mi primera respuesta:
java.lang.NoClassDefFoundError: AppletPackage/MyApplet (wrong name: MyApplet)
Al mirar las fonts , veo que este mensaje de error de “nombre incorrecto” es una indicación de una falta de coincidencia entre el nombre del archivo y el nombre de la clase. Usted afirma que su clase está dentro de AppletPackage
, y el nombre de archivo AppletPackage/MyApplet.class
ajusta a eso. Pero el código fuente que citó arriba no contiene una línea
package AppletPackage;
Debe agregar esa línea, para que el archivo de clase contenga el nombre completo de la clase. Entonces deberías poder cargarlo.