Java更新后jZebra加载错误

时间:2012-12-28 09:19:17

标签: java applet

我有一个使用jZebra applet的网络面板打印到票据打印机。所有在Java 1.6.29下都可以正常工作,但在更新到1.7.10之后,applet加载失败并出现jZebra.PrintApplet.class ClassNotFoundException。加载applet的Html看起来像:

...
<p>
<applet name="jZebra" code="jzebra.PrintApplet.class" archive="./jzebra.jar" width="100" height="100"></applet>
</p>
...

jzebra.jar与html文件保持在同一文件夹中。

你知道可能是什么问题吗?

2 个答案:

答案 0 :(得分:1)

我建议更新到qz-print 1.8.0并使用JNLP(或新提供的applet标签)来部署applet。如果你选择保留applet标签,我会建议更新它们,因为它们多年来发生了很大的变化:

<applet id="qz" archive="./qz-print.jar" name="QZ Print Plugin" code="qz.PrintApplet.class" width="55" height="55">
    <param name="jnlp_href" value="qz-print_jnlp.jnlp">
    <param name="cache_option" value="plugin">
    <param name="disable_logging" value="false">
    <param name="initial_focus" value="false">
</applet>

或者如果你需要保留旧的&#39; jzebra&#39;名称

<applet name="jzebra" archive="./qz-print.jar" code="qz.PrintApplet.class" width="55" height="55">
    <param name="jnlp_href" value="qz-print_jnlp.jnlp">
    <param name="cache_option" value="plugin">
    <param name="disable_logging" value="false">
    <param name="initial_focus" value="false">
    <param name="printer" value="zebra">
</applet>

此外,我建议完全删除所有版本的Java并重新安装Java 7,因为它在升级过程中遇到了多个问题。

根据我的经验,Java 7中大约有十分之一的升级中断。有一些解决方案,但对我来说最好的是卸载所有以前的版本,重新启动并恢复Java 7.请理解这不正常&#34;您是否尝试先卸载&#34;赞助,这是安装程序/升级过程中的一个问题,我们有许多客户花费数小时试图让我们的applet加载,只是为了找到甚至无法工作的Oracle测试页。

此外,Java 7中有许多变化。特别是它如何处理JNLP。某些旧版本的Java 6没有正确的JNLP支持,因此需要.class参数作为applet标记的一部分。

为了增加更多的挫败感,对于像jzebra这样的免费applet,Oracle阻止自签名applet在更新的Java版本中运行。这是在早期Java 7版本中引入警告的,并且它们被7u51完全阻止。

但还有更多......如果检测到Java版本已过期并且您的安全设置设置为高,则在7u21中,Oracle决定阻止JavaScript(LiveConnect)。 (高是默认的BTW)。如果你对过时&#34;过时&#34;感到好奇是,这可以通过计时器(自Java版本发布以来已有3个月)或对Oracle站点的检查(即新版本可用)来确定。幸运的是,Java 7 u51添加了白名单功能,以防止指定URL的LiveConnect阻止行为:https://blogs.oracle.com/java-platform-group/entry/upcoming_exception_site_list_in但必须为使用自签名小程序和/或过时Java版本访问的每个URL添加此行为。

  

注意:您可能还需要将自签名证书安装到&#34;签名者CA&#34;您的Java安全选项卡的一部分,但这是您应该首先理解的安全风险,可能超出了此问题的范围。

jzebra applet的新版本(现在名为&#34; qz-print&#34;)对其中一些加载问题进行了一些检查,并提供了一个解决它们的警告对话框。它们可以在sample.html中看到。

请下载最新的打印插件和Java版本,然后转到http://qzindustries.com/support,我们一定会帮助您实现这一目标。

-Tres

答案 1 :(得分:0)

尝试设置相对于网站根目录的jzebra.jar路径,例如/dist/jzebra.jar。

它对我有用......