هواوي تحميل: فئة ميابليت لم يتم العثور على: java.lang.ClassNotFoundException. لماذا أنا الحصول على هذا، عندما يكون ملف فئة هناك في الحزمة؟




مشكلة توقف اداة تثبيت الحزم (2)

أحصل على الاستثناء التالي عندما أحاول تشغيل التطبيق الصغير:

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

رمز التطبيق:

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);
}   
}

رمز هتمل:

<applet code="MyApplet" codebase="AppletPackage" archive="JAR.jar" height="800" width="800">

يحتوي الملف JAR.jar على حزمة أبليتباكاج وهذه الحزمة تحتوي على ملف فئة اسمه MyApplet.class

لماذا أحصل على هذا الاستثناء؟ واري لقد ارتكبت خطأ؟


هذه محاولة لمعالجة رسالة الخطأ المبلغ عنها في تعليق على إجابتي الأولى:

java.lang.NoClassDefFoundError: AppletPackage/MyApplet (wrong name: MyApplet)

وعند النظر إلى المصادر ، أرى أن رسالة الخطأ هذه "خطأ" هي إشارة إلى عدم تطابق بين اسم الملف واسم الفئة. أنت تدعي أن صفك داخل AppletPackage ، واسم الملف AppletPackage/MyApplet.class يناسب ذلك. ولكن شفرة المصدر التي نقلتها أعلاه لم تحتوي على سطر

package AppletPackage;

يجب إضافة هذا السطر، بحيث يحتوي ملف الفئة على اسم المؤهل بالكامل للفئة. ثم يجب أن تكون قادرا على تحميله.


يتم حل معلمة archive بالنسبة إلى معلمة codebase . حتى في حالتك البرنامج المساعد سوف ننظر لملف MyApplet.class المدرجة في ملف AppletPackage/JAR.jar .

يجب تغيير ذلك إلى ما يلي:

<applet code="AppletPackage.MyApplet" archive="JAR.jar" height="800" width="800">

سيتم حل هذا إلى AppletPackage/MyApplet.class داخل JAR.jar في نفس الدليل كملف هتمل.





classnotfoundexception