错误:Java 搜索到可能导致安全问题的应用程序组件。


本文适用于:
  • 平台: 所有平台
  • Java 版本: 7.0, 8.0

问题

尝试运行基于 Java 的小应用程序或应用程序时,显示安全警告对话框:
要阻止这些可能不安全的组件运行吗?

Java 搜索到可能导致安全问题的应用程序组件。请联系应用程序供应商,以确保该应用程序未被他人篡改。


原因

包含了已签名和未签名组件的已签名 Java Web Start 应用程序和小应用程序可能存在不安全性,除非是应用程序供应商有意使用混合代码。从 Java SE 6 Update 19 版本开始,当程序同时包含签名和未签名组件时,会出现一个警告对话框。


解决方案

在安全对话框中,如果用户单击,则会阻止可能不安全的组件运行,程序可能终止。如果用户单击按钮,应用程序或小应用程序则会继续执行。
出现警告是默认行为,但没有为用户提供管理此情况的选项。

可以通过 Java 控制面板管理如何处理混合代码程序。

查找 Java 控制面板

» Windows
» Mac OS X

Java 控制面板中的混合代码保护选项

  1. 在 Java 控制面板中单击高级选项卡。
  2. 展开安全部分下的混合代码(沙盒与可信)安全验证选项。
4 级控制可用。
启用 - 需要时显示警告
这是默认设置。遇到潜在安全风险时,会出现警告对话框。单击会阻止可能不安全的组件运行并可能终止程序。用户单击时,应用程序或小应用程序会继续执行并激活保护(之后遇到的带有相同的名称但拥有不同的信任等级 - 比如,已签名与未签名的 - 软件包或资源将不会加载)。

启用 - 隐藏警告并在保护下运行
此选项将阻止警告对话框。代码会如同用户从警告对话框中单击了那样执行。

启用 - 隐藏警告且不运行不可信代码
此选项将阻止警告对话框并如同用户从警告对话框中单击了那样执行。

禁用验证
不建议使用此选项。此选项将完全禁止软件检查混合的信任和不信任的代码,让用户在没有保护的情况下运行可能不安全的代码。


更多技术信息

Java 应用程序开发人员:请参见混合代码文档。