# Java applet in html anzgeigen - ClassNotFoundException



## Angel-Knight (6. Jun 2005)

hi,

ich hab mich schon durch ein par seiten in der suche gewälzt und rumprobiert aber bisher hab ichs noch net hinbekommen.

ich hab mit eclipse ein awt applet erstellt:


```
import java.applet.Applet;
import java.awt.Label;
import java.awt.Button;

public class ArchiTK_MainApp extends Applet {

	private Label label = null;
	private Button btnNext = null;
	
	private Button getBtnNext() {
		if (btnNext == null) {
			btnNext = new Button();
			btnNext.setBounds(92, 126, 123, 22);
			btnNext.setName("btnNext");
			btnNext.setLabel("Next");
		}
		return btnNext;
	}
		
 	public static void main(String[] args) {
 		ArchiTK_MainApp STarter = new ArchiTK_MainApp();
	}

 	
	public ArchiTK_MainApp() {
		super();
		init();
	}
	
	public  void init() {
		label = new Label();
		this.setLayout(null);
		this.setBackground(new java.awt.Color(34,34,161));
		this.setSize(300,200);
		label.setText("Test Applet");
		label.setBounds(91, 23, 111, 39);
		this.add(label, null);
		this.add(getBtnNext(), null);
	}	
}
```

einen ordner erstellt, die dateien reinkopiert und eine html seite mit folgendem code drin erstellt:


```
<html> 
<body> 
<applet code="ArchiTK_MainApp.class" width="300" height="200" > 
</applet> 
</body> 
</html>
```
(java dateien und html seite im selben verzeichnis)

wenn ich die html seite jetzt aufrufe kommt nur ein graues feld im dem nichts steht, wenn ich mit der maus über das feld gehe kommt "load: ArchiTK_MainApp class not found"

habs mit ie6 und ff1.04 probiert, java is in den internet einstellungen aktiviert und die jre is auch drauf.

hat jemand ne ahnung worans liegen könnte? kann mir jemand helfen?

thx schonmal für die antworten


----------



## Sky (6. Jun 2005)

Wie sieht denn deine HTML-Seite dazu aus?? Wie sieht die Verzeichnisstruktur aus (wo liegen .class-Files und .html-Files)??

btw.: Die init-Methode nicht im Konstruktor aufrufen. Das macht das RE 'automatisch'


----------



## Angel-Knight (6. Jun 2005)

alle dateien befinden sich im selben verzeichnis,

der ordner enthält atm diese dateien:



java.policy.applet
architk_mainapp.class
.classpath
architk_mainapp.java
.project
mofu.html

die html datei sieht wie schon oben beschrieben aus:


```
<html> 
<body> 
<applet code="ArchiTK_MainApp.class" width="300" height="200" > 
</applet> 
</body> 
</html>
```

wenn ich unter eclipse das applet als java applet ausführe zeigt er es so an wie es aussehen soll.

habs grad auchma unter crazy browser getestet, selbes ergebnis

ps.: wow schnelle antwort


----------



## L-ectron-X (6. Jun 2005)

Guck mal bitte in die Java-Console. Sind dort Exceptions aufgeführt? Wenn ja, welche? Besser noch, poste in diesem Fall mal den Inhalt der Console.
Du kannst auch mal den AppletViewer aus dem JDK bemühen, der darf mit deinem Applet keine Schwierigkeiten haben. Wenn doch, liegt ein Fehler vor.
Aufruf;

```
appletviewer meineseite.html
```


----------



## Angel-Knight (6. Jun 2005)

also wenn ich das applet über run->java applet aufrufe erscheint das applet wies aussehen soll, in der console steht nur 

```
ArchiTK_MainApp[Java applet]C:\programme\Java\j2re1.3.2_06\bin\javaw.exe(06.06.2005 13:14:33)
```
wenn ichs wieder schliesse das selbe mit einem <beendet> davor


bei

```
appletviewer meineseite.html
```
meckert er rum von wegen "Syntaxfehler bei Token, falsch platzierte(s) Konstrukt(e)" beim appletviewer 
und "Syntaxfehler bei Token ".",, erwartet" beim punkt zwischen name und html



wenn ich die html seite einfach so aufrufe kommt garkeine meldung ausser 
"load: ArchiTK_MainApp class not found" wenn ich auf das graue feld gehe wo eigendlich mein applet zu sehen sein müsste.


----------



## L-ectron-X (6. Jun 2005)

Gut, das ist die Ausgabe der Statuszeile. Und was sagt die Java-Console des Browsers, wenn du das Applet im Browser startest?


----------



## Guest (7. Jun 2005)

nice, hatte gestern noch die java console entdeckt im browser mit rechtsklick auf das graue feld wos applet sein sollte, wollts dann hier auf arbeit nochma ausprobieren weil ich mir mein projekt ein bischen zerschossen hatte (die html seite einfach so in den workspace kopiert), und hier geht die scheiss java konsole nicht.... teilweise zeigt er nichtmal das graue feld an.... ich werd noch n par rechner durchprobieren und meld mich dann wenn ich weiss was in der console steht.

oder gibts noch ne andere möglichkeit in die console zu gelangen? weil durch rechtsklick gehts nicht

(zu hause gings auch nicht, aber ich hatte es da schon hinbekommen das er das applet findet)


----------



## Angel-Knight (7. Jun 2005)

ok, kann auf java console zugreifen:

Microsoft (R) VM for Java, 5.0 Release 5.0.0.3810
==============================================
?  Hilfe
c  Löschen
f  abschließen
g  bereinigter Speicher
m  Speicherverwendung
q  verlassen
t  Thread-Liste
==============================================
Error loading class: ArchiTK_App_Applet
java.lang.NoClassDefFoundError
java.lang.ClassNotFoundException: ArchiTK_App_Applet
	at com/ms/vm/loader/URLClassLoader.loadClass
	at com/ms/vm/loader/URLClassLoader.loadClass
	at com/ms/applet/AppletPanel.securedClassLoad
	at com/ms/applet/AppletPanel.processSentEvent
	at com/ms/applet/AppletPanel.processSentEvent
	at com/ms/applet/AppletPanel.run
	at java/lang/Thread.run


----------



## Angel-Knight (7. Jun 2005)

ok, langsam seh ich nicht mehr durch....


ich teste hier immernoch herrum und bin jetzt soweit:

ich hab die html datei eine ordner ebene nach oben verschoben:

mofu.html <-Meine html Datei
ArchiTK_App <- Mein ordner mit den java dateien

so dann schreib ich in meine html folgendes:

```
<html> 
<body> 
<applet code="C:\Programme\eclipse\workspace\ArchiTK_App\ArchiTK_MainApp.class" width="300" height="200" > 
</applet> 
</body> 
</html>
```
und bekomm dabei die meldung von der console:

```
java.net.MalformedURLException: unknown protocol: c
java.lang.ClassNotFoundException: C:\Programme\eclipse\workspace\ArchiTK_App\ArchiTK_MainApp
	at com/ms/vm/loader/URLClassLoader.loadClass
	at com/ms/vm/loader/URLClassLoader.loadClass
	at com/ms/applet/AppletPanel.securedClassLoad
	at com/ms/applet/AppletPanel.processSentEvent
	at com/ms/applet/AppletPanel.processSentEvent
	at com/ms/applet/AppletPanel.run
	at java/lang/Thread.run
```
wohlgemerkt ist die datei ArchiTK_MainApp.class genau im ordner ArchiTK_App

wenn ichs versuche mit 

```
<html> 
<body> 	
<applet code="ArchiTK_App\ArchiTK_MainApp\main.class" width="300" height="200" > 
</applet> 
</body> 
</html>
```
  bekomm ich die meldung:

```
com.ms.security.SecurityExceptionEx[Host]: java.io.IOException: bad path: C:\Programme\eclipse\workspace\ArchiTK_App\ArchiTK_MainApp\main.class
	at com/ms/security/permissions/FileIOPermission.check
	at com/ms/security/PolicyEngine.deepCheck
	at com/ms/security/PolicyEngine.checkPermission
	at com/ms/security/StandardSecurityManager.chk
	at com/ms/security/StandardSecurityManager.checkRead
	at java/io/File.isDirectory
	at sun/net/www/protocol/file/FileURLConnection.connect
	at sun/net/www/protocol/file/FileURLConnection.getInputStream
	at com/ms/vm/loader/ResourceLoader.getURLData
	at com/ms/vm/loader/ResourceLoader.getCodebaseRelativeData
	at com/ms/vm/loader/ResourceLoader.getClassData
	at com/ms/vm/loader/URLClassLoader.findClass
	at com/ms/vm/loader/URLClassLoader.loadClass
	at com/ms/vm/loader/URLClassLoader.loadClass
	at com/ms/applet/AppletPanel.securedClassLoad
	at com/ms/applet/AppletPanel.processSentEvent
	at com/ms/applet/AppletPanel.processSentEvent
	at com/ms/applet/AppletPanel.run
	at java/lang/Thread.run
java.lang.ClassNotFoundException: ArchiTK_App\ArchiTK_MainApp\main
	at com/ms/vm/loader/URLClassLoader.loadClass
	at com/ms/vm/loader/URLClassLoader.loadClass
	at com/ms/applet/AppletPanel.securedClassLoad
	at com/ms/applet/AppletPanel.processSentEvent
	at com/ms/applet/AppletPanel.processSentEvent
	at com/ms/applet/AppletPanel.run
	at java/lang/Thread.run
```
komischerweise zeigt er in diesem fall den class anhang an, findet den pfad aber nicht

wenn ich die html datei wieder in den ordner mit den java dateien kopiere bekomme ich wieder diese meldung:

```
Error loading class: ArchiTK_MainApp
java.lang.NoClassDefFoundError
java.lang.ClassNotFoundException: ArchiTK_MainApp
	at com/ms/vm/loader/URLClassLoader.loadClass
	at com/ms/vm/loader/URLClassLoader.loadClass
	at com/ms/applet/AppletPanel.securedClassLoad
	at com/ms/applet/AppletPanel.processSentEvent
	at com/ms/applet/AppletPanel.processSentEvent
	at com/ms/applet/AppletPanel.run
	at java/lang/Thread.run
```

hab mich auch mal wieder durchs java buch gewältzt aber über applet steht nicht wirklich was drin....

hab ich irgentwas vergessen, übersehen oder nicht beachtet? woran könnts liegen??


----------



## L-ectron-X (7. Jun 2005)

Dein Problem ist offensichtlich, dass dein Browser die falsche VM benutzt, nämlich die von MS. Dazu Folgendes:
http://www.java-forum.org/de/viewtopic.php?t=4936


----------



## AngelRipper (8. Jun 2005)

ok thx für die hilfe, ich lad mir grad mal das jdk 1.1.8 runter und probiers damit


*edit* hab jetzt das jdk 1.1.8 drauf und mit javac convertiert, jetzt klappts!!!!

nochma thx an alle helfer!


----------

