# Applet jar file von 1.4 und 1.1.8



## linglin (7. Jun 2004)

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:



```
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?

Vielen Dank für eine schoene Idee.


----------



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

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.


----------



## Guest (7. Jun 2004)

L-ectron-X hat gesagt.:
			
		

> 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.



Danke schön erstens.

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.

Wichtiger ist noch.eine dumme Frage,Was VM ist ?


----------



## Guest (7. Jun 2004)

also VM schon Klar,aber was ist MS, microsoft windows oder?


----------



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

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)


----------



## Guest (8. Jun 2004)

ja,danke schön fuer deine Bemühung.
ich habe überprueft,mit Sicherheit sagen .wurde die Java pluggin (1.4.2)bei mir installiert.

also ich denke ,es liegt vielleicht daran,dass die Html mit Applet nicht richtig eingebunden.
ich habe nur so gemacht:


```
<APPLET id=OBJECT1 height=525 archive=getlokalhost.jar width=825 code=Getlokalhost.class name=myApplet>
```

es laeuft allerdings lokal kein Problem,also ob ich noch was fehlt ?
Danke schön für deine Hilfe


----------



## L-ectron-X (8. Jun 2004)

Schreibe besser:

```
<applet code="Getlokalhost.class" archive="getlokalhost.jar" width=825 height=525>
</applet>
```


----------



## Guest (8. Jun 2004)

L-ectron-X hat gesagt.:
			
		

> Schreibe besser:
> 
> ```
> <applet code="Getlokalhost.class" archive="getlokalhost.jar" width=825 height=525>
> ...




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?


----------



## Guest (8. Jun 2004)

also,mein aktuellter version ist JDK 1.4 ,im Prinzip brauche ich die HTMlConverter nie mehr zu nutzen ,oder?


----------



## L-ectron-X (8. Jun 2004)

HTML-Converter? Wozu? ???:L 

:?: Welche Fehler stehen in der Java-Console oder in der Statusleiste des Browsers? 

Vielleicht versucht Deine Applet noch Dinge zu machen, die es aus sicherheitstechnischen Gründen nicht machen darf... ???:L


----------



## Guest (9. Jun 2004)

L-ectron-X hat gesagt.:
			
		

> HTML-Converter? Wozu? ???:L
> 
> :?: Welche Fehler stehen in der Java-Console oder in der Statusleiste des Browsers?
> 
> Vielleicht versucht Deine Applet noch Dinge zu machen, die es aus sicherheitstechnischen Gründen nicht machen darf... ???:L



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:


```
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:


```
<HTML>
<HEAD>
</HEAD>
<BODY BGCOLOR="000000">
<CENTER>



<OBJECT classid="clsid:E19F9331-3110-11d4-991C-005004D3B3DB"
WIDTH = "825" HEIGHT = "525"  codebase="http://java.sun.com/products/plugin/1.3.0_02/jinstall-130_02-win32.cab#Version=1,3,0,2">
<PARAM NAME = CODE VALUE = "Getlokalhost.class" >
<PARAM NAME = ARCHIVE VALUE = "getlokalhost.jar" >

<PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.3.0_02">
<PARAM NAME="scriptable" VALUE="false">
<COMMENT>
<EMBED type="application/x-java-applet;jpi-version=1.3.0_02"  CODE = "Getlokalhost.class" ARCHIVE = "getlokalhost.jar" WIDTH = "825" HEIGHT = "525"  scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3.0_02/plugin-install.html"><NOEMBED>

</NOEMBED>
</EMBED>
</COMMENT>
</OBJECT>

<!--
<APPLET CODE = "Getlokalhost.class" ARCHIVE = "getlokalhost.jar" WIDTH = "825" HEIGHT = "525">


</APPLET>
-->






</CENTER>
</BODY>
</HTML>
```

aber es geht auch nicht.(sogar beim Lokal auch nicht)

also ich moechte noch mal fragen,ob ich diese HTML_CONVerter nutzen muss,
wenn ich die JAVA_Plugin (jre1.4.2)schon richtig installiert habe.

ich hoffe deine weitere Hilfe.Danke schön


----------



## Stefan1200 (9. Jun 2004)

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.


----------



## L-ectron-X (9. Jun 2004)

@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.


----------



## Guest (9. Jun 2004)

also,mein code sieht total einfach aus,das war eingentlich nur zum testen.



```
import javax.swing.*;
import java.awt.*;

public class Getlokalhost extends JApplet 
{


	public void init() 
	{
      
        
	    	    
	    JButton ctest=new JButton("Testbutton");
	    
                  Container content = this.getContentPane();
		    
						
	   content.add(ctest);
		

}
}
```

und die code von Html wie fogendes:

```
<HTML>
<HEAD>
</HEAD>
<BODY BGCOLOR="000000">
<CENTER>

<APPLET name=myApplet id=OBJECT1 height=525 archive=getlokalhost.jar width=725 code=Getlokalhost.class>
	<PARAM NAME="bordersize" VALUE="20">
	<PARAM NAME="adress" VALUE="URL">
	<PARAM NAME="ovtype" VALUE="null">
	<PARAM NAME="imagewidth" VALUE="320">
	<PARAM NAME="imageheight" VALUE="240">
	</APPLET>
</CENTER>
</BODY>
</HTML>
```

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?

Danke schön fuer weitere Hilfe oder Diskussion.


----------



## L-ectron-X (9. Jun 2004)

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:

```
<html>
 <head>
  <title>Getlokalhost-Applet</title>
 </head>
 <body>
  <h1>Getlokalhost-Applet</h1>
  <applet code="Getlokalhost.class" width=400 height=300>
  </applet>
 </body>
</html>
```
Ergbnis mit Opera: Applet läuft. Ergebnis mit IE: Applet läuft.


----------



## Guest (14. Jun 2004)

ich habe die code auch so aehnlich umgeschrieben,

```
<html> 
<head> 
<title>Getlokalhost-Applet</title> 
</head> 
<body> 
<h1>Getlokalhost-Applet</h1> 
<applet code="Getlokalhost.class" archive="getlokalhost.jar" width="825" height="525"> 
</applet>


</body> 
</html>
```


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.


----------



## Guest (14. Jun 2004)

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.


----------



## L-ectron-X (14. Jun 2004)

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.


----------



## Guest (14. Jun 2004)

L-ectron-X hat gesagt.:
			
		

> 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?

http://forum.java.sun.com/thread.jsp?forum=30&thread=521842


----------



## L-ectron-X (14. Jun 2004)

Anonymous hat gesagt.:
			
		

> 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.


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.


Ja, das sehe ich genau so.



			
				Anonymous hat gesagt.:
			
		

> ich würde noch mal fragen,hat der Applet von 1.4.2 noch was spezielle Anforderung?


Nein, die Verwendung, Einstellung und Benutzung von Applets (JApplets) hat sich auch mit dem SDK 1.4.2 nicht geändert.



			
				Anonymous hat gesagt.:
			
		

> oder ,koennte mein Hardware (DSP) das Nutzen von 1.4.2 begrenzen?


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.

Gruß
L-ectron-X


----------



## Stefan1200 (15. Jun 2004)

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.


----------



## Guest (15. Jun 2004)

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.

1.haben wir die Html file geändert.


```
<applet code="Getlokalhost.class" [color=red]archive="archive.cgi[/color]" width="825" height="525">
```

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.



```
........
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: 

besonders vielen Dank fuer deine Hilfe.

Gruss.


----------

