I get the following exception when i try to run the 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
applet code :
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);
}
}
html code :
<applet code="MyApplet" codebase="AppletPackage" archive="JAR.jar" height="800" width="800">
JAR.jar file contains a package Appletpackage and this package contains a class file named MyApplet.class
Why do i get this exception ? Whare have i made the mistake ?
The archive
parameter is resolved relative to the codebase
parameter. So in your case the plugin will look for a file MyApplet.class
included in a file AppletPackage/JAR.jar
.
You should change this to the following:
<applet code="AppletPackage.MyApplet" archive="JAR.jar" height="800" width="800">
This will resolve to AppletPackage/MyApplet.class
inside JAR.jar
in the same directory as the HTML file.
This is an attempt to address the error message reported in a comment to my first answer:
java.lang.NoClassDefFoundError: AppletPackage/MyApplet (wrong name: MyApplet)
Looking at the sources , I see that this “wrong name” error message is an indication of a mismatch between file name and class name. You claim that your class is inside AppletPackage
, and the file name AppletPackage/MyApplet.class
fits that. But the source code you quoted above didn't contain a line
package AppletPackage;
You should add that line, so that the class file contains the fully qualified name of the class. Then you should be able to load it.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.