Here are my reasons for not liking the HTML converter, from what I've seen of it:
1. You have to hard-code the URL of a specific JRE binary that you require
2. The HTML converter program does not know which JREs are available (or what directory they are in) which means you have to dig around and find it yourself
3. The HTML converter *relies* on certain browsers not recognizing certain tags. This is prone to breaking your applet when, for example, Netscape starts recognizing the COMMENT tag the same way that IE does.
4. Multi-browser support (and without using this option, why Java anyway?) requires a gigantic mess of HTML that is tricky to edit later on
5. Using my method, you can check for the user's version of Java pretty transparently on any page of your website and direct them however you like -- IE you can provide your own customized instructions on what to look for on the "Get Java" page.
6. Assuming this JavaScript/Java detection works on all or most browsers that can run Java, it is much less likely to break with future versions the browsers, since the JavaScript language is going to be backwards compatible whereas non-support for certain HTML tags is inherently not backwards-compatible
7. This mechanism is a lot closer to the process for detecting and redirecting users depending on what version of Flash they have installed. The ease of doing that is something that Sun should be imitating by now

Here is what the HTML converter spit out automatically for the DetectPlugin class:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <!--"CONVERTED_APPLET"--> <!-- CONVERTER VERSION 1.0 --> <SCRIPT LANGUAGE="JavaScript"><!-- var _info = navigator.userAgent; var _ns = false; var _ie = (_info.indexOf("MSIE") > 0 && _info.indexOf("Win") > 0 && _info.indexOf("Windows 3.1") < 0); <COMMENT><SCRIPT LANGUAGE="JavaScript1.1"><!-- var _ns = (navigator.appName.indexOf("Netscape") >= 0 && ((_info.indexOf("Win") > 0 && _info.indexOf("Win16") < 0 && java.lang.System.getProperty("os.version").indexOf("3.5") < 0) || (_info.indexOf("Sun") > 0) || (_info.indexOf("Linux") > 0)));
<SCRIPT LANGUAGE="JavaScript"><!-- if (_ie == true) document.writeln('<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH = 0 HEIGHT = 0 NAME = "DetectPluginApplet" codebase="http://java.sun.com/products/plugin/1.1.1/jinstall-111-win32.cab#Version=1,1,1,0"><NOEMBED><XMP>'); else if (_ns == true) document.writeln('<EMBED type="application/x-java-applet;version=1.1" java_CODE = "DetectPlugin.class" NAME = "DetectPluginApplet" WIDTH = 0 HEIGHT = 0 pluginspage="http://java.sun.com/products/plugin/1.1.1/plugin-install.html"><NOEMBED><XMP>'); <APPLET CODE = "DetectPlugin.class" WIDTH = 0 HEIGHT = 0 NAME = "DetectPluginApplet" ></XMP> <PARAM NAME = CODE VALUE = "DetectPlugin.class" > <PARAM NAME = NAME VALUE = "DetectPluginApplet" >
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.1">
</APPLET>
</NOEMBED></EMBED></OBJECT> |
compare this to what I want to use:
1
| <APPLET NAME="DetectPluginApplet" CODE="DetectPlugin.class" WIDTH=0 HEIGHT=0> |
At this point, I guess it expects me to look up the cab location for win32 systems, mac systems, *nix systems, etc? The thing is, I don't even want to mess with all of this crap if I can avoid it
