You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何强制Java 6 Applet仅使用Java 1.6环境运行?

解决Java 6 Applet强制指定JRE 1.6运行的问题

背景

维护三款老旧Applet:两款Java 3 Applet可正常运行,一款2010年开发的Java 6 Applet无法在JRE 7/8环境下运行,且因部分源码缺失无法重新编译,需配置嵌入参数强制其使用JRE 1.6运行,甚至引导浏览器临时下载对应版本JRE。

可正常运行的Java 3 Applet嵌入代码

<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
WIDTH = 100% HEIGHT = 100% ALIGN = "baseline"  
codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0">

<PARAM NAME = CODE VALUE = "ODBSServerGUI\OLIVE.class" >
<PARAM NAME = ARCHIVE VALUE = "olive.jar" >

<PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.3.0_02">
<PARAM NAME="scriptable" VALUE="false">
<PARAM NAME = "port" VALUE ="20285">
<PARAM NAME = "host" VALUE="MOGH">
</OBJECT>

当前Java 6 Applet嵌入代码(无法在JRE 7/8运行)

<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
        width="100%"
        height="100%"
        align= "baseline">
    <param name="code" value="SiteCommApplet.TestTool.class" >
    <param name="archive" value="/RMCommandCentre/dist/OTTApp.jar">
    <param name="username" value="<?php echo $userdetails['User']['name'];?>">
    <param name="connid" value="<?php echo $dbconnection['Dbconnection']['id'];?>" >   
</object>

已尝试但失败的配置

<object classid="clsid: CAFEEFAC-0016-0025-FFFF-ABCDEFFEDCBA"
        width="100%"
        height="100%"
        align= "baseline" codebase="http://java.sun.com/update/1.6.0/jinstall-6u25-windows-i586.cab#Version=1,6,25,0">
    <param name="code" value="SiteCommApplet.TestTool.class" >
    <param name="archive" value="/RMCommandCentre/dist/OTTApp.jar">
    <PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.6.0">
    <param name="username" value="<?php echo $userdetails['User']['name'];?>">
    <param name="connid" value="<?php echo $dbconnection['Dbconnection']['id'];?>" >   
</object>

可行解决方案

修正后的嵌入代码

<object classid="clsid:CAFEEFAC-0016-0025-FFFF-ABCDEFFEDCBA"
        width="100%"
        height="100%"
        align="baseline"
        codebase="http://java.sun.com/update/1.6.0/jinstall-6u25-windows-i586.cab#Version=1,6,0,25">
    <param name="code" value="SiteCommApplet.TestTool.class">
    <param name="archive" value="/RMCommandCentre/dist/OTTApp.jar">
    <param name="type" value="application/x-java-applet;jpi-version=1.6.0_25">
    <param name="java_version" value="1.6.0_25">
    <param name="scriptable" value="false">
    <param name="username" value="<?php echo $userdetails['User']['name'];?>">
    <param name="connid" value="<?php echo $dbconnection['Dbconnection']['id'];?>">
    <!-- 非IE浏览器兼容配置 -->
    <embed type="application/x-java-applet;jpi-version=1.6.0_25"
           code="SiteCommApplet.TestTool.class"
           archive="/RMCommandCentre/dist/OTTApp.jar"
           width="100%"
           height="100%"
           scriptable="false"
           username="<?php echo $userdetails['User']['name'];?>"
           connid="<?php echo $dbconnection['Dbconnection']['id'];?>"
           pluginspage="http://www.java.com/en/download/manual.jsp">
    </embed>
</object>

关键修正点

  1. 修正ClassID格式:移除原配置中classid内的空格,确保CAFEEFAC-0016-0025-FFFF-ABCDEFFEDCBA无多余空格,该ID对应JRE 1.6.0_25版本。
  2. 规范Codebase版本号:将版本号调整为1,6,0,25(逗号分隔,对应1.6.0_25),与JRE版本严格匹配。
  3. 明确版本参数:同时指定type和java_version参数的完整版本号1.6.0_25,避免浏览器匹配高版本兼容模式。
  4. 添加跨浏览器支持:补充<embed>标签适配非IE浏览器,通过pluginspage引导用户下载对应JRE版本。
  5. 统一安全参数:添加scriptable="false",与Java 3 Applet配置保持一致,降低脚本交互风险。

额外注意事项

  • 若官方JRE安装包链接失效,需在内部服务器托管JRE 1.6u25安装包,并修改codebase和pluginspage为内部地址。
  • 需配置浏览器安全设置,允许该站点运行未签名Applet(若Jar无签名),或将站点添加至信任列表。
  • 确保客户端系统未禁用JRE 1.6,部分系统会自动禁用老旧版本JRE,需手动启用。

内容的提问来源于stack exchange,提问作者Adrian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:24:25