# Bekomme Java 3D Applets nicht zum Laufen



## paule0815 (27. Jan 2008)

Hallo Javafreunde,

ich versuche mich langsam in die Java3D-Welt zu begeben, konnte aber bisher nicht ein einziges Beispielprogramm starten.  :bahnhof: 

Problembeschreibung:

Es ist mir zwar gelungen, mit javac ein ".class"-File zu erzeugen, aber leider zeigt die html-Seite nur ein leeres Fenster. Fahre ich mit der Maus drüber, dann kommt die Meldung: 



> Klicken Sie hier, um dieses Steuerelement zu aktivieren und zu verwenden



Tue ich das dann, passiert gar nichts. Das ganze übrigens auch bei Onlinebeispielen. 

Um Browserfehler auszuschließen habe ich das ganze noch mal über den appletviewer in der Eingabeaufforderung getestet. Ergebnis sind seitenweise Fehlermeldungen, die eingeleitet werden mit



> java.security.AccessControlException: access denied (java.lang.Runtimepermission exitVM.0



Hintergrundinfo:

Ursprünglich wurden viele Onlinebeispiele korrekt angezeigt, wie z.B. der Beethoven auf folgender Seite:
https://j3d-webstart.dev.java.net/test/

Da auf der gleichen Seite aber das Segelschiff nur teilweise (ohne Textur) und begleitet von einer Fehlermeldung angezeigt wurde, habe ich ein jdk und ein jre update runtergeladen und installiert. Dann habe ich noch eine Onlineaktualisierung von java vorgenommen. Könnte das der Grund sein (quasi ein Update-overload)?

Da er ja offensichtlich eine "security exception" auslöst ist vielleicht auch interessant zu wissen, dass McAfee bei mir aktiviert ist. Allerdings war das auch schon der Fall, als ich den Beethoven in alle Richtungen drehen konnte. Übrigens: die Handys von T-Mobile lassen sich noch drehen.

Ich hoffe, daß Ihr mit diesen Angaben schon wisst, was da bei mir schief läuft, und mir einen Abhilfevorschlag posten könnt. :cry: 

Danke,
Holger


----------



## Marco13 (27. Jan 2008)

Hm. Bei sowas sind Ferndiagnosen immer schwierig. Aber wie ist denn jetzt der aktuelle Stand bei den Onlinebeispielen? Oder geht da jetzt GAR nichts mehr?

Wenn du selbst was geschrieben hast, kannst (und solltest) du ggf. auch mal versuchen, das nicht als Applet zu starten, sondern als normale Java-Anwendung. (Bei Applets können ggf. irgendwelche Zugriffsrechte nötig sein, die man extra in Polcy-Files schreiben muss etc. - aber McAfee dürfte damit schonmal nichts zu tun haben)


----------



## paule0815 (15. Feb 2008)

Danke für die schnelle Rückanwort, in Sachen Reaktivität hb ich noch was zu lernen und gelobe Besserung.

Inzwischen habe ich alles was "Java" heisst deinstalliert und lediglich über die Java-Hompage die aktuelle virual machine, jre1.6.0_04, das Java 3D Paket und jdk1.6.0_04 installiert (in der Reihenfolge). Ergbnis: Die Onlinebeispiel funktionieren wieder, aber meine kleinen Testprogramme laufen nicht.

Problembschreibung:

Folgenden standartprogramm habe ich mit javac compiliert:


```
import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.BranchGroup;

public class Hello3d
{

  public Hello3d()
  {
    SimpleUniverse universe = new SimpleUniverse();
    BranchGroup group = new BranchGroup();
    group.addChild(new ColorCube(0.3));
    universe.getViewingPlatform().setNominalViewingTransform();
    universe.addBranchGraph(group);
  }

  public static void main( String[] args )
  {
    new Hello3d();
  }

} // end of class Hello3d
```

Ergebnis: eine ".class" Datei ohne Probleme. dann habe ich mir die ".class" Datei mit "java Hello3d.class" anschauen wollen (also nicht als Applet). Das Ergebnis ist die folgende Ausgabe:



> Exception in thread "main" java.lang.NoClassDefFountError: Hello3d/class
> Caused by: java.lang.ClassNotFoundException: Hello3d.class
> at java.net.URLClassLoader$1.ru(Unknown Source)
> at java.security.AccessController.doPrivileged(Native Method)
> at ....



Habt Ihr da ein paar Tips für mich?

Danke,
Holger


----------



## Marco13 (15. Feb 2008)

Nicht
java Hello3d.class
sondern
java Hello3d


----------



## L-ectron-X (15. Feb 2008)

paule0815 hat gesagt.:
			
		

> > java.security.AccessControlException: access denied (java.lang.Runtimepermission exitVM.0


Einem Applet ist es verboten die VM zu beenden, daher der Fehler.



			
				paule0815 hat gesagt.:
			
		

> Könnte das der Grund sein (quasi ein Update-overload)?


Nein, sowas gibts nicht. Es kann nur passieren, dass eine ältere VM benutzt wird, obwohl eine nagelneue installiert ist.
Daher muss sichergestellt sein, dass die neue JRE/Plugin zu letzt installiert wurde.



			
				paule0815 hat gesagt.:
			
		

> Da er ja offensichtlich eine "security exception" auslöst ist vielleicht auch interessant zu wissen, dass McAfee bei mir aktiviert ist.


Eine SecurityException hat nichts mit Virenscannern etc. zu tun.
Da geht es meist um potenziell unsichere Zugriffe auf das lokale System durch über Netzwerke übertragenen Code, oder Java-Code, auf dem lokalen System kritische Dinge machen soll, bspw. einen Port öffnen.


----------

