Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi Alle
Mein Kopf wird immer groesser ,also,ich habe ein Applet unter Jdk 1.4 geschrieben,und jar file erzeugt,und zwar bei lokal webserver(von MFC erstellt) schon getestet,das war gut.aber wenn ich die jar file auf dem wirklichen Webserver lade,dann funktioniert nie mehr(Dass ich die Jar file und html file unter code composer ins c code uebersetzen gelassen,dadurch Hardware die Jar file erkennen kann).
und von java console kriege ich folgende Meldung:
Code:
Laden: Klasse Getlokalhost.class nicht gefunden
java.lang.ClassNotFoundException: Getlokalhost.class
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)
Caused by: java.io.IOException: open HTTP connection failed.
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 10 more
zum Testen habe ich auch ein kleines Beispiel unter JDK1.1.8 erstellte,mit dem kann es sogar richtig laufen,also,d.h.meines Hardware Teil ist kein Problem.zwischen 1.1.8 und 1.4 gibt es noch Unterschied,oder?
beim 1.4 muss ich noch irgendwie die Internet explore einstellen,oder wie?
Also die Exception deutet darauf hin, dass eine VM schon mal läuft, diese aber die Klasse nicht finden konnte.
Wenn Du Dein Beispiel mit 1.1.8 lauffähig kompiliert hast, gibts damit in der Regel auch keine Probleme bei der Ausführung mit dem IE, wenn kein Java-PlugIn von Sun auf Deinem System installiert wurde.
Wenn das so ist, könnte es nun ein Fehler in der HTML-Datei oder auch in Deiner Verzeichnisstruktur zum Applet (Pfad) sein.
Dazu ist es interessant, zu wissen, ob Du in Deinem Applet ein package deklariert hast, dem es angehört, und wie Du das Applet in Deiner HTML-Datei aufrufst. Außerdem, ob Applet und HTML-Datei im gleichen Verzeichnis liegen oder nicht.
Wenn Dein Beispiel mit SDK 1.4.x kompiliert wurde, ist auf dem Zielsystem zwingend eine VM ab 1.2 nötig, welche für den IE auch zusätzlich in den Browsereinstellungen aktiviert werden muss. Die MS-VM ist zu deaktivieren.
Also die Exception deutet darauf hin, dass eine VM schon mal läuft, diese aber die Klasse nicht finden konnte.
Wenn Du Dein Beispiel mit 1.1.8 lauffähig kompiliert hast, gibts damit in der Regel auch keine Probleme bei der Ausführung mit dem IE, wenn kein Java-PlugIn von Sun auf Deinem System installiert wurde.
Wenn das so ist, könnte es nun ein Fehler in der HTML-Datei oder auch in Deiner Verzeichnisstruktur zum Applet (Pfad) sein.
Dazu ist es interessant, zu wissen, ob Du in Deinem Applet ein package deklariert hast, dem es angehört, und wie Du das Applet in Deiner HTML-Datei aufrufst. Außerdem, ob Applet und HTML-Datei im gleichen Verzeichnis liegen oder nicht.
Wenn Dein Beispiel mit SDK 1.4.x kompiliert wurde, ist auf dem Zielsystem zwingend eine VM ab 1.2 nötig, welche für den IE auch zusätzlich in den Browsereinstellungen aktiviert werden muss. Die MS-VM ist zu deaktivieren.
bei mir ist so,whatever ich die code unter 1.4.2.oder 1.1.8 schreibe,bei Lokal webserver läuft es also immer gut,
nur wenn ich die code unter 1.4.2 schreibe(denn ich swing nutzen würde),und zwar ins wirkliche webserver lade,um beim Client Seite diese Applet aufzurufen,also dann geht NICHT.
deswegen ,ich denke die Verzeichnisstructur sollte kein Problem sein,aber es liegt wahrscheinlich an irgendeine Einstellung von IE oder was.
Wenn Du ein JApplet mit Swing-Komponenten über das Internet laden und ausführen möchtest, braucht der Zielrechner, der das Applet ausführen soll, möglichst ein aktuelles Java-PlugIn von Sun. Das gibts es für die meisten der am Markt befindlichen Betriebssysteme.
Der Internet Explorer von Microsoft bringt zwar eine VM (Virtual Machine, das ist im Prinzip der Intepreter, die Runtime Umgebung) mit, diese ist aber hoffnungslos veraltet. Sie ist nicht in der Lage, Applets mit Swing-Komponenten auszuführen. Selbst wenn keine Swing-Komponenten in Deinem Applet programmiert wurden, Du aber das Applet mit einem Compiler nach der JDK Version 1.1.8 kompiliert hast, läuft das Applet nicht.
Das heißt, wenn Du den IE von MS wink nutzt, solltest Du auf jeden Fall das aktuelle Java-PlugIn von Sun benutzen und die alte VM in den Browsereinstellungen deaktivieren.
VM = Virtual Machine
IE = Internet Explorer
MS = Microsoft (TM) (hat sich so eingebürgert)
ich habe schon so geändert,es knappt noch nicht,würde mal weiter fragen,ich habe java runtime envirnment schon installiert,und trotzdem brauche ich noch the HTML Converter?
also,wie gesagt,die Applet lauft Lokal kein Problem,(ich habe ein Lokalwebserver(MFC geschrieben) zum Testen)
nur wenn ich die jar file auf dem wirklichen Webserver lade,dann funktioniert nie mehr.
die FehlerMeldung lautet:
Code:
Laden: Klasse Getlokalhost.class nicht gefunden
Caused by: java.io.IOException: open HTTP connection failed.
denn ich habe keine Idee mehr,und bei Handbuch von java habe ich solche Aussagen gesehen:
Um das Plugin zum Ausführen eines Applets zu bewegen, darf dieses im HTML-Quelltext nämlich nicht mehr innerhalb eines APPLET-Tags stehen, sondern muß mit dem EMBED- bzw. OBJECT-Tag eingebunden werden. Zwar stellt SUN ein automatisches Werkzeug zur Konvertierung von Web-Seiten zur Verfügung...
mit HTML_CONVerter kann man die Html quelltext mit (Applet-tag) ins html mit (EMBED_Tag) umwandeln.
und habe ich die Html code wie folgendes gewandelt:
Nur mal zum Thema Java 1.1.8 Programme unter Java SDK 1.4.2 kompilieren.
Selbstverständlich geht das! Man muss dem javac compiler nur folgendes Argument übergeben (am Besten im IDE ein zweites Java SDK Profil anlegen):
javac HalloWelt.java -target 1.1
Dann läuft die class Datei auch unter Java 1.1.8.
Ohne das Argument erzeugt javac nur class dateien, die ab Version 1.2 laufen.
@Stefan1200: Ich wusste, dass es geht, aber eben nicht genau wie. Deshalb bin ich auf Nummer sicher gegangen, um hier kein Mist zu erzählen. Aber Danke für den Tipp, jetzt bin auch ich im Bilde!
Zum eigentlichen Problem fällt Dir nichts ein?
@linglin/Gast: Hm, die Fehlermeldung hat sich nicht" verändert, es besteht noch das gleiche Problem.
Du musst auch unbedingt heraus bekommen, warum die IOException geworfen wird. Möglicherweise besteht eine Verbindung zwischen beiden Fehlern. Auf jeden Fall besteht ein Problem im Quelltext Deines Applets.
Kann man sich mal den Quellcode irgendwo anschauen, oder herunter laden?
Wenn Du ein Java-PlugIn installiert hast brauchst Du keinen HTML-Converter. In der Webseite wird das Applet wie in meinem Beispiel eingebunden und bei allen Applets, die ich bisher geschrieben habe, funktionierte das tadellos.
und zwar wie gesagt,beim Lokal war das immer kein Problem,also,deswegen vermute ich ,das Problem sollte nicht an
den Code liegen,sondern an der Einstellung oder was anders.
gerade habe ich bei sun homepage nutzbare dinge gefunden. http://forum.java.sun.com/thread.jsp?forum=30&thread=521842
vielleicht sollte ich noch the security permissions on the jar verändern,oder?aber wie?
Also, ich habe mir jetzt mal den Code mit dem SDK 1.4.2 kompiliert und mit Deiner HTML-Datei auf meinen Webserver geladen. Ergebnis mit Opera: Applet läuft. Ergebnis mit IE: Applet läuft nicht. In der Java-Console werden die von Dir beschriebenden Fehler ausgegeben.
Dann habe ich die HTML-Datei umgeschrieben:
nur ein getlokalhost.jar mehr,anders sieht genau so aus.
aber es lauft kein Unterschied ,lokal geht,hochladen dann geht nie mehr.
ich denke. bei mir diese Jar file kann nicht geöffnet werden,muss ich die jar file noch irgendwie einstellen,
also,bei html teil habe ich nicht mehr Ahnung.mir kann nur weiter forschen. :wink: .
trotzdem danke ich dir ganz ehrlich.
ich wuerde noch weiter fragen,
mein Jar file ist unter jcreator erzeugt,wenn dieser file beim webserver richtig laufen kann,(also,meine ich ,beim Client Seite geöffnet werden kann).brauche ich noch was extra damit zu machen,oder nicht?.z.b brauche ich das jar file noch ins war file zu umwandeln?
danke danke.
Eigentlich ist keine Umwandlung in ein war-file erforderlich. Auch irgendeine "Einstellung" des jar-Files ist nicht nötig. Das was Du programmiert hast (JApplet) ist wie ein "normales" Applet in einer HTML-Datei (mit Applet-Tags) lauffähig. Schau mal hier, da habe ich mal eine (bei mir) lauffähige Version Deines JApplets in einer Version "Nur-Class-File" und in einer Version "In-einem-jar-File" online gestellt. Beide Versionen laufen ohne Probleme im Opera und IE, bei mir lokal wie im Internet.
Mich würde nun mal interessieren, ob beide Versionen auf Deinem Rechner laufen.
Eigentlich ist keine Umwandlung in ein war-file erforderlich. Auch irgendeine "Einstellung" des jar-Files ist nicht nötig. Das was Du programmiert hast (JApplet) ist wie ein "normales" Applet in einer HTML-Datei (mit Applet-Tags) lauffähig. Schau mal hier, da habe ich mal eine (bei mir) lauffähige Version Deines JApplets in einer Version "Nur-Class-File" und in einer Version "In-einem-jar-File" online gestellt. Beide Versionen laufen ohne Probleme im Opera und IE, bei mir lokal wie im Internet.
Mich würde nun mal interessieren, ob beide Versionen auf Deinem Rechner laufen.
die Beide laufen bei mir auch kein Problem,d.h mindestens :mein VM lauft ohne Problem und zwar die code selber auch kein Problem(besonders bei html code teil).
wie gesagt,mein Jar code und Html file wurde erstens durch code composer ins C code übersetzt,dann load ich die ganzen Project ins DSP(mei Hardware,wo webserver lauft ).vor ein paar minuten habe ich noch mal mit 1.1.8 getestet,es lauft gut.d.h,die code wurde auch richtig übersetzt.das Problem liegt NICHT daran.
und dann war ich wieder mit scheiss 1.4 :x beschäftigt,diesmal nur mit CLASS,aber Ohne JAR file,das lauft auch NICHT.
d.h,das Problem sollte auch mit Den Einstellung von Jar nichts zu tun haben.
aber woran es liegen könnte? :roll:
ich würde noch mal fragen,hat der Applet von 1.4.2 noch was spezielle Anforderung?
z.b beim Http einstellung.denn bei mir immer lokal geht,hochladen dann geht nie MEHR.
oder ,koennte mein Hardware (DSP) das Nutzen von 1.4.2 begrenzen?
und kannst du kurz mal unten link schauen,ich denke ,die Fehler sollte gleich wie mein sein.
aber wie kann man die security permissions on jar verändern?
Da staune ich aber! Ein JApplet dürfte nicht unter 1.1.8 laufen, weil die von Dir verwendeten Klassen noch nicht im JDK 1.1.8 zur Verfügung standen. Ich glaube, dass vielleicht nur ein paar Einstellungen im Browser geändert werden müssten. Ich bin da etwas ratlos...???:L
Anonymous hat gesagt.:
d.h,das Problem sollte auch mit Den Einstellung von Jar nichts zu tun haben.
Ich kenne so etwas wie "Hardware (DSP)" leider nicht. Aber die Frage ist berechtigt und ich könnte mir vorstellen, dass es direkt mit dem Problem zu tun hat. Ja, ich gehe sogar mal davon aus, da Du ja auf einem "normalen" Webserver Dein eigenes Applet funktionstüchtig bewundern konntest.
Ich habe auch nur Deinen Code kompiliert, eine HTML-Datei dazu erstellt und es auf meinen Server geladen.
Anonymous hat gesagt.:
und kannst du kurz mal unten link schauen,ich denke ,die Fehler sollte gleich wie mein sein.
aber wie kann man die security permissions on jar verändern?
Das habe ich gemacht. Ich kann Dir an dieser Stelle leider keinen Rat geben, da ich mich mit "Hardware (DSP)" nicht auskenne. Auch was das Ändern der Security Permission in diesem Fall betrifft, weiß ich keinen Rat. Ich empfehle Dir für diese Frage einen neuen Thread zu öffnen.
Also die security permissions müssen für dein Code Beispiel nun wirklich nicht verändert werden.
Aber wenn der selbe Source bei anderen läuft, aber bei dir nicht, ist es definitiv ein Interessantes Problem ;-).
Womit erstellt Ihr die Jar Dateien? Womit erstellt Ihr die Class Dateien?
Was mich verwirrt, das es Lokal geht, aber Online nicht.
Wenn ich nachher noch etwas Zeit finde, teste ich es auch noch mal.
Erstens Vielen Danke für eure Bemühnung und freudliche Hilfe.
Gerade hat ein Fachman für mich das Problem gelöscht,ehrlich sagen,das ist echt sehr komplieziert fuer mich.
ich schreibe die ausführliche schritt unten ,vielleicht koennte es jemand später helfen,der auch gleich Problem hat.
das Denkmal ist so,Nehmen wir CGI Funktion statt Jar file direkt aufzurufen.
2.entsprechend schreiben wir die Code in C ,gibt es viele Dinge ,aber kein Heutiges Thema.
einfach zu sagen,jar file ins c uebersetzt,dann irgendwie die Archive verwendet.
Code:
........
static int drivearchive(int htmlsock, int ContentLength, char *pArgs)
{
HTTP_sendNoCacheData(htmlsock,"[color=red]application/java-archive[/color]",GETLOKALHOST_JAR,GETLOKALHOST_JAR_SIZE);
return 1;
}
..........
3.installieren die Ethereal zum debuggen.damit kann man genau ueberwachen,wie die Applet bei Html lauft,
dann finden wir: die proxies bei unserem Fall verändert werden soll.
dann ->java plugin-control panel->proxies->use Brower Settings deaktiviert.
4.endlich lauft .
bin momental auch nicht sehr klar über den Ganzen Vorgang.aber könnten wir später noch darueber diskutieren.
PS to L-ectron-X:ich habe unter 1.1.8 kein swing erzeugt nur einfach applet zum Testen.nicht staunen :lol: