2016-06-05 17 views
0

Ich habe ein extrem einfaches Java-Applet, das in Safari nicht als Übung für ein altes Lehrbuch funktioniert, das nicht funktioniert. Ich benutze das veraltete Java SDK Version 1.6 auf OSX El Capitan. Der HTML-Code istClassNotFoundException in Java Applet

<html> 
<head> 
<title>2-1 Test</title> 
</head> 
<body> 
<applet code="HelloWorld.class"></applet> 
</body> 
</html> 

Und das Java-Programm ist:

import java.awt.*; 
import java.applet.*; 

public class HelloWorld extends java.applet.Applet{ 
TextField m1, m2, m3; 
public void main(){ 
m1 = new TextField(60); 
m2 = new TextField(60); 
m3 = new TextField(60); 
m1.setText("Good day to you!"); 
m2.setText("My name is Cynthia."); 
m3.setText("This is the third line."); 
add(m1); 
add(m2); 
add(m3); 
} 
} 

HTML und Java-Datei (kompiliert HelloWorld.class) sind im gleichen Verzeichnis (keine Pakete beteiligt sind).

UPDATE: Leerzeichen wurden aus dem Dateipfad entfernt. Die Java-Konsole kam nun mit dem folgenden:

basic: tap installed 
basic: Creating PluginEmbeddedFrame served by PlaceHolderServerName-2581 
basic: Done creating PluginEmbeddedFrame 
basic: Added progress listener: [email protected] 
security: Expected Main URL: file:/Users/Desktop/GreatIdeasInComputerScienceWithJavaExercises/HelloWorld.class 
java.lang.ClassNotFoundException: HelloWorld.class 
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
    at java.lang.Thread.run(Thread.java:745) 
basic: load: class HelloWorld.class not found. 
java.lang.ClassNotFoundException: HelloWorld.class 
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) 
    at java.lang.Thread.run(Thread.java:745) 
security: Accessing keys and certificate in Mozilla user profile: null 
security: Reset deny session certificate store 
security: Reset deny session certificate store 
basic: Removed progress listener: [email protected] 
basic: Dialog type is not candidate for embedding 
basic: Dialog type is not candidate for embedding 

Kann jemand empfehlen, was ich tun müssen, um Java richtig eingerichtet zu bekommen, damit ich mit dem Buch weiter?

+0

Es ist keine classnotfounddexception, es ist eine illegalstateexception – Li357

+0

wo ist der Konstruktor deiner Klasse darf ich fragen? –

+0

Applets haben traditionell keine Hauptmethoden. Allerdings sind Applets inzwischen veraltet und werden nicht mehr unterstützt. – MadProgrammer

Antwort

1

Nehmen Sie, was ist in Ihrer main Methode und legen Sie es in die init oder run Methode. Applets haben typischerweise keine main Methoden.

Nachdem all das gesagt wurde, sind Applets nun veraltet und werden im Allgemeinen nicht mehr unterstützt, wobei die meisten, wenn nicht alle Browser, sie aktiv blockieren und Oracle die Unterstützung für das Applet-Plugin entfernt.

Vielleicht sollten Sie einen genaueren Blick auf How to use Applets

nun aktualisiert haben, dass der Fehler geändert hat, würde es vorschlagen, dass Sie nicht ist kompiliert haben die .java Datei und/oder es nicht kompiliert in der Ort, den du erwartest

0

.Desktop.Great Ideas in Computer Science with Java Exercises.HelloWorld.class ist offensichtlich kein gültiger vollständig qualifizierter Klassenname. Passen Sie den Paketnamen an die Verzeichnisstruktur an und verwenden Sie gültige Namen (keine Leerzeichen für eins).

+0

Leerzeichen wurden entfernt, und das Applet wird immer noch nicht ausgeführt. Der Konsolenprotokollfehler wurde jedoch aktualisiert: – user1850145