habe folgendes Problem, ich habe ein Applett, welches auf einem Client geladen wird. Jedoch habeich folgendes Problem, ich kann nicht feststellen, ob java auf dem System installiert ist oder nicht. Bei Map24.de gibt es eine Java Erkennung, welche feststellt, ob Java installiert ist oder nicht. Wenn Java installiert ist, lädt Map24.de die Karte im Java Applett, im anderen Fall wird nach der weiteren Vorgehensweise gefragt.
wie mache ich das nun?
Habe halt eine Version mit dem Applett und eine Version ohne Applet, wobei, wenn Java installiert ist, die Version mit dem Applet gestartet werden soll.
Habe halt eine Version mit dem Applett und eine Version ohne Applet, wobei, wenn Java installiert ist, die Version mit dem Applet gestartet werden soll.
Ja klar. Weil ohne Java kannst Du halt kein Applet starten.
Alternative: Wenn Java nicht installiert ist, so soll der Benutzer es installieren ansonsten ist es nicht möglich die Funktion zu nutzen.
Das kannst Du direkt im Applet-Tag deiner Webseite lösen.
Code:
<applet code="AppletKlasse.class" width=400 height=300>
<!-- Und hier kann nun jeder möglicher HTML-Code stehen.
Du kannst Grafiken laden, Texte ausgeben oder Flash-Dateien laden. -->
</applet>
Wenn es also nicht möglich ist, das Applet auszuführen, weil keine Java VM installiert ist, wird der HTML-Code zwischen <applet> und </applet> Tag ausgeführt.
habe ich auch schon ausprobiert, mit Mozilla, wobei dieser trotz kein java installiert das applet tag erkannt hat, aber dann die Seite von Netscape geladen hat, um das notwendige zu downloaden. Gibt es da noch andere Möglichkeiten?
Oh ja... z.B. den Umweg über Java-, ECMA- oder J-Script.
Möge es Ausnahmsweise mal nicht unter "Für verirrte" erscheinen...
Code:
<script language="javascript">
<!--
var out = "";
if(navigator.javaEnabled()) {
out += "<applet ......>\n"; //Achtung! DoubleQuote muß "escaped" werden! (" -> \")
out += " <param .....>\n>";
out += " <NOAPPLETHTML...>\n"; // HTML-Code der ausgeführt wird, wenn Java eingeschaltet ist, jedoch nicht installiert wurde. Der IE z.B. fordert dann zum Dowload und zur Installation der MSJVM auf.
out += "</applet>\n";
} else {
out += "<NOJAVAHTML....>\n"; // HTML-Code, der ausgeführt wird, wenn Java weder installiert, noch aktiviert ist.
}
document.write(out);
//-->
</script>
<noscript>
.......
</noscript>
natürlich ist dieser Test nicht unbedingt das Nonplus-Ultra, aber so kann man es machen. Es fehlt noch ein Zweig der ausgeführt wird, wenn zwar Java, jedoch kein Java-Script vorhanden ist.
das scheint ja logisch zu sein, aber es scheint dennoch nicht zu funktionieren
Folgender Code:
Code:
<html>
<head>
<meta content="text/html; charset=ISO-8859-15"
http-equiv="content-type">
<title>Java - Erkennung</title>
</head>
<body>
<script language="javascript">
var out = "";
if(navigator.javaEnabled()) {
out += "<applet code=\"JavaTest\" codebase=\".\" height=\"400\" width=\"400\">\n"; //Achtung! DoubleQuote muß "escaped" werden! (" -> \")
out += " <param name=\"url\" value=\"Neu.html\">\n>";
out += " <NOAPPLETHTML >\n"; // HTML-Code der ausgeführt wird, wenn Java eingeschaltet ist, jedoch nicht installiert wurde. Der IE z.B. fordert dann zum Dowload und zur Installation der MSJVM auf.
out += "</applet>\n";
} else {
out += "<NOJAVAHTML>\n"; // HTML-Code, der ausgeführt wird, wenn Java weder installiert, noch aktiviert ist.
}
document.write(out);
</script>
<noscript></noscript>
</body>
</html>
Auf einem Sytsem mit Java und wo Appets funktionieren, funktioniert das alles einwandfrei, jedenfalls mit Mozilla.
Habe dann mit VMWARE eine Umgebung ohne Java simuliert, darauf funktionierte es nicht so, wie es sollte.
Normalerweise solte die Seite doch leer sein oder?
Doch er versucht das Applet zu laden, wobei der IE sagt, dass er das Applet nicht findet, obwohl es im gleichen Ordner befindet.
Die Kleinigkeit, das bei deinem Beispiel, bei der Applet-Klasse "JavaTest" die Endung ".class" fehlt, und das in der Zeile mit dem Parameter hinten eine Spitze Klammer "zu" zuviel ist. Die Beispiel-Tags <NOAPPLETHTML > bzw. <NOJAVAHTML> existieren natürlich nicht. Diese müssen durch beliebige Tags (tables, divs, usw...) ersetzt werden. Sonst sieht das Funktionsfähig aus ???:L .
ja, das habe ich auch schon mit dem .class ausprobiert, jedoch versucht der IE immer noch, dass Applet zu laden. Es ist aber kein Java auf dem Rechner installiert, das ist eine rohe win 2k installation ohne service pack oder anderes, da ist nur der ie und mozilla drauf.
Das komische, in Mozilla erkennt er, dass überhaupt kein Java installiert ist und er für denn Teil aus, der für "kein javascript aktiviert" ist aus.
Hast du dir mal die Mühe gemacht, das Applet mit dem von mir geposteten HTML-Code im IE zu starten?
Wenn ja, was macht er? Gibt er den Teil zwischen den applet-Tags aus, oder bleibt das Fenster grau? Was steht in der Java-Console?
Möglicherweise ist die von MS modifizierte VM mit installiert worden.
Ja, das kann sein, dass die VM mit installiert worden ist, denn der teil bleibt grau.
Folgendes steht in der Java Console:
Microsoft (R) VM for Java, 5.0 Release 5.0.0.3234
==============================================
? Hilfe
c Löschen
f abschließen
g bereinigter Speicher
m Speicherverwendung
q verlassen
t Thread-Liste
==============================================
Error loading class: JavaTest
java.lang.NoClassDefFoundError
java.lang.ClassNotFoundException: JavaTest
at com/ms/vm/loader/URLClassLoader.loadClass
at com/ms/vm/loader/URLClassLoader.loadClass
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.processSentEvent
at com/ms/applet/AppletPanel.run
at java/lang/Thread.run
Jetzt müsste sich nach der feststellung des Fehlers die anderen HTML - Tags in Aktion treten. (so muss es sein)
Du hast sicher nicht das Applet mit dem Sun JDK 1.1 kompiliert, oder?
Denn nur mit diesem kompilierte Klasse kann die von Microsoft mitgelieferte VM ausführen.
Und da eine Java-VM installiert ist, werden die Zeilen zwischen den applet-Tags nicht ausgeführt.
Deaktiviere mal das Java im IE und er wird die Zeilen zwischen den Tags ausführen.