Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > NoClassDefFoundError при запуске апплета


Автор: svv 16.9.2002, 21:44
Есть демо апплет, вот его полный текст

// пример аффинных преобразований
import java.awt.*;
import java.awt.geom.*;
import java.applet.*;
import javax.swing.*;

public class TestRotation extends JApplet{
public void init(){
RotationPanel rotationPanel=new RotationPanel();
getContentPane().add(rotationPanel,BorderLayout.CENTER);
}
}

class RotationPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2=(Graphics2D) g;
g2.setColor(Color.blue);
Font font=new Font("Serif",Font.BOLD,30);
g2.setFont(font);
String msg="Hello, Alice";
// прямая надпись
g2.drawString(msg,50,50);
AffineTransform at=new AffineTransform();
at.translate(70.0,70.0);
// смещение начала координат, чтобы надписи не пересекались
at.concatenate(AffineTransform.getRotateInstance(Math.toRadians(45)));
// поворот на 45 по часовой стрелке
g2.setTransform(at);
g2.drawString(msg,0,0);
// еще смещение начала координат, чтобы надписи не пересекались
at.translate(-70.0,0.0);
// поворот на 45 по часовой стрелке отн. предыдущего поворота
at.rotate(Math.toRadians(45));
g2.setTransform(at);
g2.drawString(msg,0,0);
}
}

Компилится без ошибок в файл TestRotation.class

При попытке запустить из IE 6.0
выдается ошибка
ava.lang.NoClassDefFoundError: RotationPanel
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Может кто-нибудь знает, в чем здесь дело?

Автор: Sun 16.9.2002, 21:54
У тебя на машине не прописан CLASSPATH. Поэтому Java и ругается. Влючи в CLASSPATH все пакеты и классы которые ты используешь и все должно заработать.  :)

Автор: svv 17.9.2002, 03:14
Цитата(Sun @ 16.9.2002, 14:54)

CLASSPATH влияет на компиляцию,
а в моем случае классы я не обратил внимания на то, что классы
скомпилировались в отдельные файлы. Нужно было просто дописать
RotationPanel.class в тот же каталог, что и html.
После этого все заработало.

Автор: AntonSaburov 28.10.2002, 21:23
Так тебе это и говорили - CLASSPATH должен был ссылаться на каталог с недостающим классов. Ты его просто скопировал в текущий каталог, откуда они беруться по умолчанию. Ничего удивительного. :)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)