# Applet in Jar umwandeln und dann auf eine Website einbinden



## Skyscreaper21 (2. Apr 2007)

*Hallo Leute   *
Hab folgendes Problem. Mir ist es bereits gelungen eine Application in ein Applet umzuwandeln. 
Momentan versuche ich das Applet in eine Jar Datei zu exportieren nur leider funktioniert dies nicht so wirklich
Die Manifest Klasse ist soweit auch angelegt wurden.
In der Mafifest Klasse steht:
Manifest-Version: 1.0
Main-Class: Start

Also die Jar Datei wird angelegt nur beim Öffnen bzw Doppelklicken erscheint dann immer die Fehlermeldung "Could not find main class, Programm will exit."
der Quellcode des Applet ist dieser:


```
package de.upb.opengl.objController;
import java.applet.*;
import java.awt.*;
import java.io.*;

import javax.media.opengl.*;
import com.sun.opengl.util.*;
import de.upb.opengl.objController.*;


public class projectApplet extends Applet {
	private Animator animator;
	
	
	  public void init() {
	    setLayout(new BorderLayout());
	    GLCanvas canvas = new GLCanvas();
	    canvas.addGLEventListener(new JOGLObjLoader());
	    canvas.setSize(getSize());
	    add(canvas, BorderLayout.CENTER);
	    animator = new FPSAnimator(canvas, 60);
	  }

	  public void start() {
	    animator.start();
	  }

	  public void stop() {
	    // FIXME: do I need to do anything else here?
	    animator.stop();
	  }



}
```

Vielen Dank =)

_Dieser Beitrag wurde von L-ectron-X am 02.04.2007 um 14:39 Uhr editiert.
- Code-Tags gesetzt_


----------



## Leroy42 (2. Apr 2007)

Wo ist denn deine Start-Klasse?
Im package package de.upb.opengl;?

Wenn ja, mußt du den gesamten Namen der Start-Klasse im
Manifest angeben:

Main-Class: package de.upb.opengl.Start;

Außerdem kannst du ein Applet sowiese nicht über ein
Archive starten, du muß es schon ein ein (J)Frame packen.


----------



## L-ectron-X (2. Apr 2007)

Irendwie passt hier was nicht zusammen. ???:L 
Du hast eine Applikation in ein Applet umgewandelt. OK!

Und beim Öffnen erscheint die Fehlermeldung "Could not find main class, Programm will exit."

Wenn du ein Applet per Doppelklick öffnen willst - das geht nicht. Applets leben nur in Webseiten.
Deiner Applikation musst du das Applet als Content hinzufügen und es manuell initialisieren und ausführen.

Wenn du eine so genannte Appletcation erzeugen willst, muss für den Applikationsteil in der Manifest-Datei die Startklasse mit allen Packages angegeben werden. Damit kannst du sie per Doppelklick starten.
Für den Applet-Teil muss nur in der Webseite der Archivname und die Appletklasse angegeben werden.

Hier mal ein Beispiel für eine Appletcation: http://www.java-forum.org/de/viewtopic.php?t=18372


----------



## Skyscreaper21 (4. Apr 2007)

Also diePackages in der Manifest-Datei hab ich hinzugefügt. Dennoch   kann ich sie nicht wirklich per Doppelklick öffnen.  
Wie packe ich den das Applet in ein (J)Frame? Arbeite zur Zeit mit Eclipse,


----------



## L-ectron-X (4. Apr 2007)

Skyscreaper21 hat gesagt.:
			
		

> Also diePackages in der Manifest-Datei hab ich hinzugefügt. Dennoch   kann ich sie nicht wirklich per Doppelklick öffnen.


Das kann jetzt vielfältige Ursachen haben, die man näher untersuchen müsste.
In der FAQ findest du eine Batchdatei, die dich beim Erzeugen von Jar-Dateien unterstützt.
Eigentlich sollte das auch mit Eclipse keine Probleme machen, daher gehe ich mal davon aus, das deine Manifest-Datei unbrauchbar ist.
Aufschluss über den Fehler kann folgender Befehl in der DOS-Konsole / Shell geben:

```
java -jar MeinProgramm.jar
```



			
				Skyscreaper21 hat gesagt.:
			
		

> Wie packe ich den das Applet in ein (J)Frame? Arbeite zur Zeit mit Eclipse,


Da du ein Applet geschrieben hast, welches mit AWT-Komponenten arbeitet, solltest du es nur in einen Frame einsetzen. Applet erbt von Panel und kann mit der add()-Methode in den Frame gesetzt werden. Damit das Applet im Frame startet, muss es manuell initialisiert und gestartet werden.
Ein Beispiel dazu habe ich oben bereits gepostet, dieses sollte schon einige Fragen im Vorfeld klären.


----------



## Skyscreaper21 (16. Apr 2007)

In der Konsole vom Appletfenster kam folgende Fehlermeldung .

Laden: Klasse com.sun.opengl.util.JOGLAppletLauncher nicht gefunden
java.lang.ClassNotFoundException: com.sun.opengl.util.JOGLAppletLauncher
	at sun.applet.AppletClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.applet.AppletClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.applet.AppletClassLoader.loadCode(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)
Caused by: java.io.IOException: open HTTP connection failed.
	at sun.applet.AppletClassLoader.getBytes(Unknown Source)
	at sun.applet.AppletClassLoader.access$100(Unknown Source)
	at sun.applet.AppletClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	... 10 more


Der dazu gehörige Quellcode ist dieser:
 <applet code="com.sun.opengl.util.JOGLAppletLauncher"
                width=400
                height=400
                codebase="/lib"
                archive="jogl.jar,gluegen-rt.jar,test.jar">
    <param name="subapplet.classname" value="untrusted.JOGLApplet" />
    <param name="subapplet.displayname" value="My JOGL Applet" />
    <param name="progressbar" value="true" />
    <param name="cache_archive" value="jogl.jar,gluegen-rt.jar,test.jar" />
    <param name="cache_archive_ex" value="jogl.jar;preload,gluegen-rt.jar;preload,test.jar;preload" />
  </applet>


----------



## L-ectron-X (16. Apr 2007)

Hast du die Fehlermeldung auch mal selbst gelesen, oder uns hier nur zum Fraß vorgeworfen? :roll: 
Da steht doch, wo das Höschen klemmt...


----------

