我创建了一个applet;它使用Deployment Toolkit进行部署,如下所示(网址是假的):
<script type="text/javascript"
src="https://www.java.com/js/deployJava.js"></script>
<script>
var attributes = {
code:'br.com.brandizzi.adam.applet.MyApplet.class',
archive:'http://adam.brandizzi.com.br/html/applet.jar',
width : 50,
height : 1
};
var parameters = {
fontSize : 1,
};
var version = '1.6';
deployJava.runApplet(attributes, parameters, version);
</script>
效果很好。幸运的是,我通过没有JVM的机器到达了我的网站,它总是被重定向到http://www.java.com - the documentation states:
如果客户端没有所需的最低版本的JRE软件,则Deployment Toolkit脚本会将浏览器重定向到http://www.java.com,以允许用户下载最新的JRE软件。在某些平台上,用户可能会在查看包含applet的网页之前被重定向。
有没有办法避免这种重定向?没有JVM,该页面可以很好地工作,applet只是一点改进。无论如何,我们的用户可能会对此重定向感到非常困惑,他们甚至没有安装JVM的权限。
答案 0 :(得分:3)
如果您查看deployJava.js脚本并且运行runApplet函数:
/** * Ensures that an appropriate JRE is installed and then runs an applet. * minimumVersion is of the form #[.#[.#[_#]]], and is the minimum * JRE version necessary to run this applet. minimumVersion is optional, * defaulting to the value "1.1" (which matches any JRE). * If an equal or greater JRE is detected, runApplet() will call * writeAppletTag(attributes, parameters) to output the applet tag, * otherwise it will call installJRE(minimumVersion + '+').
所以如果你像这样打电话
deployJava.runApplet(attributes, parameters, null);
或者像这样
deployJava.runApplet(attributes, parameters, 'undefined');
或者像这样
deployJava.runApplet(attributes, parameters, '1.1');
它只会检查是否在所有上安装了,然后才重定向到java.com进行安装。既然你有一个applet,你需要Java:)
或者你可以直接调用 deployJava.writeAppletTag(属性,参数):
/** * Outputs an applet tag with the specified attributes and parameters, where * both attributes and parameters are associative arrays. Each key/value * pair in attributes becomes an attribute of the applet tag itself, while * key/value pairs in parameters become <PARAM> tags. No version checking * or other special behaviors are performed; the tag is simply written to * the page using document.writeln(). * * As document.writeln() is generally only safe to use while the page is * being rendered, you should never call this function after the page * has been completed. */
答案 1 :(得分:1)
使用Deployment Toolkit的全部意义在于,如果没有JVM,它会提示用户安装JVM,以便您的applet可以运行。如果您不希望提示它们,则只需不要使用Deployment Toolkit。
如果他们已经安装了合适的JVM,那么您的applet将会运行。如果没有,页面的其余部分应该正常加载。
答案 2 :(得分:0)
您可以使用deployJava.js中的getJREs
功能。