【问题标题】:Load an applet with specified older JRE version instead of latest installed加载具有指定旧 JRE 版本而不是最新安装的小程序
【发布时间】:2012-12-24 12:01:45
【问题描述】:

我希望使用 JRE 版本 1.6.0_14 加载我的小程序。我已经安装了更新 14、17、24 和 35。我正在使用带有 classid<object> 标签来加载带有更新 14 的版本。

在这种情况下,小程序加载更新 35,然后再次加载更新 14。在更新 35 的 Java 控制台上没有发现错误,在更新 1.6.0_14 的 Java 控制台上,我们看到以下错误。

java.lang.ClassNotFoundException: sun/net/www/protocol/http/NTLMAuthenticationCallback

如何避免使用更高版本的JRE?以及如何避免class not found错误?

【问题讨论】:

  • 确保特定版本不足以解决问题。非 Oracle JRE 可能在 sun 包中没有类。解决方法是首先不要使用sun 包中的类,尽管我认为编译器警告和一些研究应该足以确定很多。
  • 顺便说一句。 1)使用你的班次/上限。键在适当的地方。阅读所有小写字母就像试图听某人喃喃自语。 2) 查看您将要发布到论坛的内容。如果你有,你可能已经注意到 <object> 除非用 ` 字符包裹,否则不会呈现。
  • 我没有使用过这个 NTLMAuthenticationCallback 类和 sun 包。异常堆栈没有显示我的任何功能。

标签: applet java classnotfoundexception


【解决方案1】:

使用较低版本的 JRE 运行存在严重的安全风险。当您运行自己的小程序时,不是因为您信任自己的代码。但其他人应该拒绝运行它。在使用未安装最新版本 JRE 的浏览器浏览网络时,您自己应该小心。

JRE 安装程序将 Java 插件安装到您的浏览器中,并且始终会启动一个插件版本,与您请求的 Java 版本无关。然后,插件将在您的对象标记的 classid 中​​指定的 JRE 中运行小程序。插件可用的版本可在 Java 控制面板中配置。

这就留下了为什么您的应用程序不能使用最新版本的 java 1.6 运行的问题。该插件在 1.6.0_something 中进行了大修,成为所谓的下一代插件。也许这就是给你带来麻烦的原因。您可以在 Java 控制面板的高级选项卡中指明您希望在您的机器上使用旧插件。 (“启用下一代 Java 插件(需要重新启动浏览器”)。我想知道禁用下一代插件是否能解决您的问题很有趣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 2017-01-07
    • 1970-01-01
    相关资源
    最近更新 更多