# Java-Applet startet nicht aus dem Browser



## bw1faeh0 (28. Jan 2008)

Guten Morgen!

ich habe ein Java-Applet geschrieben, dass mittels JNI und einer eigenen *.dll mit einem USB-Gerät kommuniziert.
Als Entwicklungsumgebung nutze ich Eclipse. Wenn ich die benötigte *.dll in den Eclipse-Projekt-Einstellungen als externe Lib mit angebe, funktioniert das Applet einwandfrei, sofern es aus Eclipse heraus gestartet wird.

Das ganze Projekt besteht aus vier Dateien:

id_plug.jar   <- Mein Applet als Jar gepackt (inkl. dem USB-Treiber und der Schnittstelle zwischen USB-Treiber und JNI)
jd2xx.jar  <- Der Wrapper um den USB-Treiber herum, wurde nicht von mir entwickelt
JD2XX.dll  <- Die *.dll für den Wrapper um JNI nutzen zu können, wurde nicht von mir entwickelt
ftd2xx.dll  <- Der eigentliche USB-Treiber

So. Soweit so gut. Wie kann ich es nun anstellen, dass ich das Applet aus einem beliebigen Browser aufrufen kann?

Der Code der website sieht erstmal so aus:


<HTML>
<HEAD>
   <TITLE>ACM-ID-Plug</TITLE>
<BODY BGCOLOR="#FFFFFF">
<CENTER><FONT SIZE="+2" COLOR="#FF0000">Beispiel-Programm</FONT>



<APPLET 
	CODE="ID_PLUG.class" 
	arcive="id_plug.jar"
	archive="jd2xx.jar"
	ALIGN=middle
	width = 300
	height = 200
</APPLET></P></CENTER>

<HR>

</BODY>
</HTML>


Leider Startet das Applet nicht, der Fehleroutput auf der Konsole sieht wie folgt aus:


java.lang.NoClassDefFoundError: ID_PLUG (wrong name: ID_PLUG/ID_PLUG)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	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)


Wie muss ich vorgehen, damit ich das Applet lauffähig bekomme?

mfg

Christian


----------



## bw1faeh0 (28. Jan 2008)

also ein Fehler habe ich schon mal gefunden. ich hatte das Applet in einem package und musste deswegen den Aufruf in der html-seite anpassen:

<APPLET 
	CODE="ID_PLUG.ID_PLUG" 
	arcive="id_plug.jar"
	archive="jd2xx.jar"
	ALIGN=middle
	width = 300
	height = 200
</APPLET>

nun bekomme ich eine Fehlermeldung, die ich schon erwartet habe:

Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission loadLibrary.jd2xx)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkLink(Unknown Source)
	at java.lang.Runtime.loadLibrary0(Unknown Source)
	at java.lang.System.loadLibrary(Unknown Source)
	at jd2xx.JD2XX.<clinit>(JD2XX.java:587)
	... 3 more
java.lang.NoClassDefFoundError
	at ID_PLUG.ID_PLUG.init(ID_PLUG.java:52)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)


Er scheint also Probleme mit den Zugriffsrechten zu haben. Ich habe die beiden jars jedoch bereits signiert. Leider kommt der fehler trotzdem  

mfg

Christian


----------

