Java小程序加载失败时如何显示消息?
Posted
技术标签:
【中文标题】Java小程序加载失败时如何显示消息?【英文标题】:How to display message when Java applet fails to load? 【发布时间】:2013-01-20 11:35:00 【问题描述】:我有一个 Java 小程序,它需要 Java 版本。至少 7.0.0。
是否有可能检查小程序是否加载失败并向用户显示一些他需要更新其 Java 软件的消息?
我尝试使用一些背景,但它仅在根本没有Java时显示,否则显示带有ClassNotFoundException
信息的白色矩形。这是我的 html 示例,其中包括我的小程序。
<div style="background-image: url('img/appletbg.png'); width: 790px; height: 900px;">
<applet code="MyPackage/MainClass.class"
archive="applet/MyJar.jar" >
</applet>
</div>
我知道,我可以通过 JS 找出安装的 Java 版本,但它是客户端,我更愿意在没有任何客户端交互的情况下显示一些消息。
【问题讨论】:
所以你想知道没有CLIENT交互的CLIENTS版本。我想你可以认为这是不可能的 这并不能回答您的问题,但我发现只使用 Java 6 很有帮助。很多人没有 Java 7,而且不得不处理错误报告很烦人。 同意@Doorknob。您使用 Java 7 有什么特别的原因吗?您是否使用 7 独有的特定功能(或功能)? “但它是客户端,我更愿意在没有任何客户端交互的情况下显示一些消息。” “客户端交互”是什么意思? JS 通常会在没有最终用户的任何提示或操作的情况下运行。 对于 OS X,我相信 Apple 不再更新 Java 6,因此它存在安全漏洞,唯一的更新版本是 Java 7,由 Oracle 自己更新。因此,支持 Java 7 是有意义的。但是,它不应该是 applet 的要求。 【参考方案1】:好的,我已经知道如何做到这一点,使用 AndrewThompson 的建议,使用 JS 不需要任何交互。
这是我的代码的结果,来自这个网站:http://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/ensuringJRE.html
<script type="text/javascript" src="http://java.com/js/deployJava.js"></script>
<script type="text/javascript">
if (deployJava.versionCheck("1.7.0_0+") == false)
userInput = confirm(
"You need the latest Java(TM) Runtime Environment. " +
"Would you like to update now?");
if (userInput == true)
window.location = "http://java.com/en/download/testjava.jsp";
else
// This are just the sample parameters for now!
var attributes = id:"applet", name:"TheApplet", code:"TheApplet";
var parameters = jnlp_href: "http://localhost/TheApplet.jnlp";
deployJava.runApplet(attributes, parameters, "1.7.0_0");
</script>
【讨论】:
【参考方案2】:也许还不够,但目前我认为你可以使用标签苹果的alt attribute:
<applet code="MyPackage/MainClass.class" archive="applet/MyJar.jar" >
</applet>
在文档中阅读更多内容,您可能会使用 onerror 事件,但我从未使用过它。
【讨论】:
alt
属性仅在用户安装但禁用 Java 时显示。没有安装JRE,或者JRE加载但发现小程序有问题时,无效。
我一生都在想 alt attr 可以解决错误!谢谢! :)【参考方案3】:
试试这个:
<SCRIPT LANGUAGE="JavaScript">
error= errr;
function loadApplet()
if (!document.applets[0].isActive)
alert(" Applet could not be loaded");
function errr()
alert("Applet could not be loaded");
在body onload事件中添加loadApplet方法
【讨论】:
浏览器解析页面元素后,通常会立即调用onload
事件。对于new security environment,它很可能会在用户授权对话框之前被触发,甚至在弄清楚它的用途之前。相反,有必要在特定时间限制内循环执行此检查。以上是关于Java小程序加载失败时如何显示消息?的主要内容,如果未能解决你的问题,请参考以下文章