libreria - que es awt en java
load: clase MyApplet no encontrada: java.lang.ClassNotFoundException. ¿Por qué estoy obteniendo esto, cuando el archivo de clase está allí en el paquete? (2)
Obtengo la siguiente excepción cuando intento 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 :
<applet code="MyApplet" codebase="AppletPackage" archive="JAR.jar" height="800" width="800">
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:
<applet code="AppletPackage.MyApplet" archive="JAR.jar" height="800" width="800">
Esto se resolverá en AppletPackage/MyApplet.class
dentro de JAR.jar
en el mismo directorio que el archivo HTML.
Este es un intento 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 fuentes , 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.