Problem z appletami

0

Kiedy pisze jakikolwiek aplet w języku java to wyskakuje mi okno apletu, ale nic w nim nie ma tylko napis Start applet not initlialized z czym może być problem?Najśmieszniejsze w tym że aplety z książek o javie gdzie tylko wystarczy przepisać też wyskakuje Start applet not initlialized.
Będę bardzo wdzięczny za porady.

0

Popularne przeglądarki maja konsolę Javy, otwórz ją. Tak będą dokładne komunikaty o przyczynach niepowodzenia.

0

W komunikacie takie coś mi napisało:

Java Plug-in 1.6.0_20
Using JRE version 1.6.0_20-b02 Java HotSpot(TM) Client VM


c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
l: dump classloader list
m: print memory usage
o: trigger logging
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
x: clear classloader cache
0-5: set trace level to <n>

load: class was.class not found.
java.lang.ClassNotFoundException: was.class
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: C:\Users\Artur\was\class.class (System nie może odnaleźć określonej ścieżki)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 7 more
Exception: java.lang.ClassNotFoundException: was.class

0

Caused by: java.io.FileNotFoundException: C:\Users\Artur\was\class.class (System nie może odnaleźć określonej ścieżki)

Aplet nie powinien odczytywać lokalnych plików (bez specjalnych zabiegów ze strony twórcy apletu i zgody użytkownika nie może ich czytać). Pokaż jak umieszczasz aplet w pliku html i skąd się wziął w aplecie ten

C:\Users\Artur\was\class.class
fragment

0

Aplet umieszczam w następujący sposób zgodnie ze wskazówką z książki o Javie
Kod html wygląda następująco:

<html> <head></head> <body> <applet code="PierwszyAplet.class" width="300" height="100"> </applet> </body> </html>
0

Wygląda, że jest w porządku, ale to jest odpowiedź tylko na pierwsze pytanie.

0

Jakiej przeglądarki używasz do otwarcia apletu ?? Wydaje mi się, że Opera nie pozwala na uruchamianie apletów z dysku twardego. Spróbuj IE lub Mozilla bądź umieść plik na serwerze.

0

@up, tylko Ci się wydaje.

0

Po pierwsze jeżeli klasa apletu jest przypisana konkretnemu pakietowi - np. pakiet, to loader klasy dla przeglądarki oczekuje iż ścieżka będzie zaczynała się od katalogu o nazwie tego pakietu. Np. pakiet/aplet.class. Z kolei niektóre przeglądarki w ogóle nie ładują apletów będących w pakiecie domyślnym. Czyli oznacza to, że nie da się wtedy załadować apletu wprost z roota serwera www lub tego co jest za niego uznawane przez lokalną przeglądarkę.

0
Olamagato napisał(a)

Po pierwsze jeżeli klasa apletu jest przypisana konkretnemu pakietowi - np. pakiet, to loader klasy dla przeglądarki oczekuje iż ścieżka będzie zaczynała się od katalogu o nazwie tego pakietu. Np. pakiet/aplet.class. Z kolei niektóre przeglądarki w ogóle nie ładują apletów będących w pakiecie domyślnym. Czyli oznacza to, że nie da się wtedy załadować apletu wprost z roota serwera www lub tego co jest za niego uznawane przez lokalną przeglądarkę.

Bo ja mam tak plik PierwszyAplet.html w nim łącze do pliku class czyli jak wiem jest to plik java który jest zapisany jako PierwszyAplet.java.
Czyli ja już nie wiem co źle zrobiłem?

0

Spróbuj umieścić plik html ładujący swój aplet w katalogu powyżej tego w którym znajduje się plik .class, a odwołanie do nazwy apletu w atrybucie code poprzedź nazwą katalogu w którym plik class faktycznie występuje. Nie gwarantuję, tego że to zadziała, ale jest to prawdopodobne. Dla upewnienia się czy tak jest wrzuć do kodu apletu w metodzie init instrukcję wyrzucającą na konsolę wynik metody getCodeBase(), która dla ładowarki klas przeglądarki oznacza właśnie korzeń drzewa katalogów na serwerze z którego html włączający ten aplet jest pobierany. Czasem może okazać się potrzebne rozwinięcie tego wyniku na postać ścieżki kanonicznej (unikalna i absolutna). Dzięki temu dowiesz się gdzie rozpoczyna się szukanie pliku klasy przez loadera.

0

Już działa błąd był banalny, chwila nie uwagi i może być po projekcie, dziękuję wszystkim za rady:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1