انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: dadash.mammad در 24 تیر 1389، 11:16 بظ
-
سلام.خسته نباشید.
من سعی کردم که یه اپلت ساده رو توی اوبونتو اجرا کنم این ارور رو داد:java.lang.NoClassDefFoundError: AppletTraining (wrong name: test/AppletTraining)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:209)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:144)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:654)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:785)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
at sun.applet.AppletPanel.run(AppletPanel.java:368)
at java.lang.Thread.run(Thread.java:619)
بعدش سرچیدم دیدم مثه اینکه مشکل از classpath ه.کلی هم سرچ کردم واسه ست کردنش .چند تا راه رو امتحان کردم ولی موفق نشدم.
مثلا جایی گفته بودن که توی فایل .bashrc
ستش کنم.منم این خط رو بهش اضافه کردم
$CLASSPATH=/usr/lib/jvm/java-6-sun/bin
ولی وقتی
echo $CLASSPATH
میکنم فقط یه خط خالی نشون میده
ممنون میشم که منو راهنمایی کنین :oops:
-
جوابت اینه : AppletTraining (wrong name: test/AppletTraining)
ربطی به جاوا نداره. اپلت شما مشکل داره. اسمشو احیانا عوض نکردید؟
-
ممنون بابت توجهتون
این کد اپلته:
public class AppletTraining extends JApplet {
@Override
public void init() {
System.out.println("init ejra shod !");
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawString("Mohammad", 122, 123);
}
}
این هم کد اچ تی ام اله:
<html>
<applet code = "AppletTraining.class" width = "300" height = "45">
</applet>
</html>
واسه اجراش هم که:
root@mohammad-laptop:/home/mohammad/NetBeansProjects/test/src/test# ls
applettest.html AppletTraining.java Main.java
root@mohammad-laptop:/home/mohammad/NetBeansProjects/test/src/test# javac AppletTraining.java
root@mohammad-laptop:/home/mohammad/NetBeansProjects/test/src/test# ls
applettest.html AppletTraining.class AppletTraining.java Main.java
root@mohammad-laptop:/home/mohammad/NetBeansProjects/test/src/test# appletviewer applettest.html
java.lang.NoClassDefFoundError: AppletTraining (wrong name: test/AppletTraining)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:209)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:144)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:654)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:785)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:714)
at sun.applet.AppletPanel.run(AppletPanel.java:368)
at java.lang.Thread.run(Thread.java:619)
-
شما دقیقا قسمت مشکل دار کدت رو نگذاشتی :D
خط اول کد جاوا اینه (برای شما ولی شما نگذاشتیدش):
package test
این میگه که فایل کامپایل شده شما باید توی پوشه ای به اسم test قرار بگیره . اگه میخوای همینطوری که هست اجرا بشه این خط رو حذف کن و دوباره همون مراحل رو برو میبینی که اجرا میشه. اگر نه، فایل html رو ببر یه پوشه بالاتر، دستور appletviewer رو توی پوشه بالایی (/home/mohammad/NetBeansProjects/test/src ) اجرا کن. فقط کد html یه کم باید تغییر کنه :
<applet code = "test/AppletTraining.class" width = "300" height = "45">
میبینی که راحت اجرا میشه .
-
آقا دستت درد نکنه. ۱ دنیا ممنون. همون جوری که گفتی مشکلش حل شد. \\:D/