Applet在开发机器以外的机器上失败

时间:2011-04-11 04:38:44

标签: java applet java-web-start next-generation-plugin

我正在开发一个Java applet,最近我尝试在不属于我的机器上演示applet。但是我无法让applet在该计算机上运行,​​因为它一直没有安全异常。小程序可以在http://www.cs.rpi.edu/~madiav/launch.html找到。

遗憾的是,我无法访问此其他计算机来收集堆栈跟踪或Java控制台的输出。但是我注意到我的计算机上的Java控制台发出了很多与未找到的类相关的消息,但是这个消息仍按预期运行,所以我忽略了它们。

可以在此处找到Java控制台的整个输出http://pastebin.com/DjFAJgVW 未找到类的示例行是

basic: JNLP2ClassLoader.findClass: RhythmWheels.Open: try again ..

有谁知道如何摆脱这些和/或这是否是导致其他机器上的执行失败的原因?

2 个答案:

答案 0 :(得分:1)

通常可以通过添加“

”来减少“未找到课程”消息
<param name='codebase_lookup' value='false'> 

..到applet元素。至少如果这些类是Jar'd。

有关详细信息,请参阅Special Applet Attributes


注意:这是 HTML 中的小程序param JNLP文件中 <{1}}


让您的朋友报告java.version & java.vendor properties


小程序只能由Sun的1.6.0_10 +中的JNLP配置。即使这样,浏览器也需要专门配置为在Linux上使用“下一代”插件。最好(至少在测试时)将完全不同的applet放在HTML中的applet元素中(到JNLP中指定的那个),以帮助判断是否获得了“下一代”。 / plug-in2'的行为。


编辑2:

测试:拒绝信任对话框时:

param

exception: exit(-1). ExitException[ 4]java.lang.RuntimeException: exit(-1) at com.sun.javaws.Main.systemExit(Unknown Source) at com.sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source) at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source) at com.sun.javaws.LaunchDownload.checkSignedResources(Unknown Source) at sun.plugin2.applet.JNLP2Manager.prepareLaunchFile(Unknown Source) at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Exception: ExitException[ 4]java.lang.RuntimeException: exit(-1) 来自哪里?我没有在跟踪中看到任何关于非Sun代码的提及,但我对此不熟悉ExitException

确保相框不会尝试拨打RuntimeException。甚至不允许受信任的applet结束当前的VM实例。我想到了如何“绕过”一次并尝试过 - 看到整个浏览器崩溃。 ;)

测试:当信任对话框确定时:

Applet运行并生成一个按钮以弹出自由浮动的“混音器”。按钮可以发出声音,但无法从那里看出来。


为什么这个小程序确实需要信任?


放弃applet并让JNLP直接启动JFrame.EXIT_ON_CLOSE可能会更好。

由于您似乎期望最终用户拥有1.6.0(_10 +),因此在调用JFrame之后调用setMinimumSize()上的JFrame也是值得的。

答案 1 :(得分:0)

  

但是我无法让applet在该计算机上运行,​​因为它一直没有安全例外。

我收到证书警告,但随后就会运行。也许是Java版本的问题?我有一个非常近的1.6版本。