Hallo liebe Community,
ich versuche zur Zeit mich ein wenig in die Welt von openGL einzuarbeiten, dazu benutze ich JOGL um openGL unter Java schreiben zu können. Das ganze vor dem Hintergrund, dass ich meine kleinen Animationen irgendwann mal als Applet auf meine Homepage packen kann.
Mit JOGL ansich habe ich keine Probleme, jedoch aber damit ein Applet was JOGL enthält auf meiner Homepage darstellen zu können.
Erst einmal was ich bisher gemacht habe:
1. Ich habe meinen Code in Eclipse geschrieben, mit dem dortigen AppletViewer kann ich mein Applet auch ohne Probleme anschauen. (jre 1.6.0_03, jogl 1.1.0)
2. Wie in der Documentation beschrieben habe ich folgende Klassen in ein jar gepackt (cmd: jar cf cube.jar *.class) und hochgeladen.
GLApplet.java
Renderer.java
3.die html-Datei die das Applet anzeigen soll enthält folgenden code:
Ich erhalte nun wenn ich die Seite http://www.bithauer.de/joglTest/index.htm aufrufe folgenden Fehler in der Java Konsole:
Start failed : class not found : GLApplet
Ich bin auf dem Gebiet leider ziemlicher Neuling und weis nun nicht ob er die jar nicht findet oder ich die jar falsch gepackt habe oder ob ich irgendwas anderes falsch gemacht habe.
Ich bin für jeden Hinweis und Ratschlag dankbar
so long
Recco
ich versuche zur Zeit mich ein wenig in die Welt von openGL einzuarbeiten, dazu benutze ich JOGL um openGL unter Java schreiben zu können. Das ganze vor dem Hintergrund, dass ich meine kleinen Animationen irgendwann mal als Applet auf meine Homepage packen kann.
Mit JOGL ansich habe ich keine Probleme, jedoch aber damit ein Applet was JOGL enthält auf meiner Homepage darstellen zu können.
Erst einmal was ich bisher gemacht habe:
1. Ich habe meinen Code in Eclipse geschrieben, mit dem dortigen AppletViewer kann ich mein Applet auch ohne Probleme anschauen. (jre 1.6.0_03, jogl 1.1.0)
2. Wie in der Documentation beschrieben habe ich folgende Klassen in ein jar gepackt (cmd: jar cf cube.jar *.class) und hochgeladen.
GLApplet.java
Code:
import java.applet.*;
import java.awt.*;
import javax.media.opengl.*;
import javax.media.opengl.glu.GLU;
import com.sun.opengl.util.*;
public class GLApplet extends Applet {
private Animator animator;
private GLU glu = new GLU();
public void init() {
setLayout(new BorderLayout());
setSize(640, 480);
GLCanvas canvas = new GLCanvas();
canvas.addGLEventListener(new Renderer());
canvas.setSize(getSize());
add(canvas, BorderLayout.CENTER);
animator = new FPSAnimator(canvas, 60);
}
public void start() {
animator.start();
}
public void stop() {
animator.stop();
}
}
Renderer.java
Code:
import javax.media.opengl.*;
import javax.media.opengl.glu.*;
public class Renderer implements GLEventListener
{
GLU glu = new GLU();
float x;
float y;
public void init(GLAutoDrawable drawable)
{
GL gl = drawable.getGL();
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.glShadeModel(GL.GL_SMOOTH);
gl.glClearDepth(1.0f);
gl.glEnable(GL.GL_DEPTH_TEST);
gl.glDepthFunc(GL.GL_LEQUAL);
gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
}
public void display(GLAutoDrawable drawable)
{
GL gl = drawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glTranslatef(0.0f, 0.0f, -6.0f);
gl.glRotatef(x, 1.0f, 0.0f, 0.0f);
gl.glRotatef(y, 0.0f, 1.0f, 0.0f);
quad3D(gl);
gl.glFlush();
x += 0.25;
y += 0.15;
}
public void quad3D(GL gl)
{
gl.glBegin(GL.GL_QUADS);
{
//Front
gl.glColor3f(1.0f, 0.0f, 0.0f); //ROT
gl.glVertex3f(-1.0f, -1.0f, 1.0f);
gl.glVertex3f(1.0f, -1.0f, 1.0f);
gl.glVertex3f(1.0f, 1.0f, 1.0f);
gl.glVertex3f(-1.0f, 1.0f, 1.0f);
//Right
gl.glColor3f(0.0f, 1.0f, 0.0f); //GRUEN
gl.glVertex3f(1.0f, -1.0f, 1.0f);
gl.glVertex3f(1.0f, -1.0f, -1.0f);
gl.glVertex3f(1.0f, 1.0f, -1.0f);
gl.glVertex3f(1.0f, 1.0f, 1.0f);
//Back
gl.glColor3f(0.0f, 0.0f, 1.0f); //BLAU
gl.glVertex3f(1.0f, -1.0f, -1.0f);
gl.glVertex3f(-1.0f, -1.0f, -1.0f);
gl.glVertex3f(-1.0f, 1.0f, -1.0f);
gl.glVertex3f(1.0f, 1.0f, -1.0f);
//Left
gl.glColor3f(1.0f, 1.0f, 0.0f); //GELB
gl.glVertex3f(-1.0f, -1.0f, -1.0f);
gl.glVertex3f(-1.0f, -1.0f, 1.0f);
gl.glVertex3f(-1.0f, 1.0f, 1.0f);
gl.glVertex3f(-1.0f, 1.0f, -1.0f);
//Top
gl.glColor3f(0.0f, 1.0f, 1.0f); //TUERKIS
gl.glVertex3f(-1.0f, 1.0f, 1.0f);
gl.glVertex3f(1.0f, 1.0f, 1.0f);
gl.glVertex3f(1.0f, 1.0f, -1.0f);
gl.glVertex3f(-1.0f, 1.0f, -1.0f);
//Bottom
gl.glColor3f(1.0f, 1.0f, 1.0f); //WEIS
gl.glVertex3f(1.0f, -1.0f, 1.0f);
gl.glVertex3f(-1.0f, -1.0f, 1.0f);
gl.glVertex3f(-1.0f, -1.0f, -1.0f);
gl.glVertex3f(1.0f, -1.0f, -1.0f);
}
gl.glEnd();
}
public void displayChanged(GLAutoDrawable drawable, boolean arg0, boolean arg1)
{
}
public void reshape(GLAutoDrawable drawable, int x, int y, int w, int h)
{
GL gl = drawable.getGL();
if(h == 0) h = 1; //Division durch 0 verhindern
gl.glViewport(0, 0, w, h);
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
glu.gluPerspective(45.0f, (float)w/(float)h, 0.1f, 100.0f);
gl.glMatrixMode(GL.GL_MODELVIEW);
gl.glLoadIdentity();
}
}
3.die html-Datei die das Applet anzeigen soll enthält folgenden code:
HTML:
<html>
<head>
</head>
<body>
<applet code="com.sun.opengl.util.JOGLAppletLauncher"
width=640
height=480
codebase="/lib"
archive="jogl.jar,gluegen-rt.jar,cube.jar">
<param name="subapplet.classname" VALUE="GLApplet">
<param name="subapplet.displayname" VALUE="First 3D Applet">
<param name="progressbar" value="true">
<param name="cache_archive" VALUE="jogl.jar,gluegen-rt.jar,cube.jar">
<param name="cache_archive_ex" VALUE="jogl.jar;preload,gluegen-rt.jar;preload,cube.jar;preload">
</applet>
</body>
</html>
Ich erhalte nun wenn ich die Seite http://www.bithauer.de/joglTest/index.htm aufrufe folgenden Fehler in der Java Konsole:
Start failed : class not found : GLApplet
Ich bin auf dem Gebiet leider ziemlicher Neuling und weis nun nicht ob er die jar nicht findet oder ich die jar falsch gepackt habe oder ob ich irgendwas anderes falsch gemacht habe.
Ich bin für jeden Hinweis und Ratschlag dankbar
so long
Recco