4

如何从 Windows 命令提示符修改 Java 控制面板选择(对应于 deployment.properties 文件)? 具体来说,我正在寻找可以"Action for local applets""Custom Security Level Settings"窗口中影响选择更改的命令(单击 Java 控制面板中“安全”选项卡中“安全级别”滑块的“自定义”设置旁边的“设置...”按钮) , 从"Prompt user""Run without prompt". 此设置的默认值随 Java 7 的更新 11 更改,它干扰了我现在正在修复的自动测试程序的操作,当 IE 启动 java.exe 时会弹出一个安全警告对话框窗口,除非此 Java 控件面板设置是预先调整的。该测试程序启动 IE 以运行本地 Java 小程序,该小程序是使用 AWT 编写的,并且不访问任何网站。

注意,这个问题最近已经讨论过了——见https://service.parachat.com/knowledgebase/273/I-see-a-Do-you-want-to-run-this-application-security-warning.html

对于我的任务,手动修改此 Java 控制面板设置是解决问题的最不理想的方法,因为我正在修复的程序是自动化测试套件的一部分,它部署在许多机器上,并且需要手动干预使得部署过程容易出错。我需要这些命令从 Windows 命令提示符批处理文件运行。

我发现这些安全级别选择记录在 Java deployment.properties 文件和 2 个 Windows 注册表中,名称以 deployment.properties 文件结尾的键下在Oracle Java SE 文档“部署配置文件和属性”"Software\JavaSoft\DeploymentProperties". 中进行了全面讨论,但没有提到任何明显的内容about ,可能是因为此属性是最近添加的(?)当我调整 Java 安全级别并在 Java 控制面板中时,我看到了 deployment.properties 文件以及 DeploymentProperties 注册表项中反映的更改。"Action for local applets""Action for local applets"

所以我可以做到以下几点:

  1. 通过脚本调整deployment.properties文件(保存原始文件)
  2. 通过脚本启动 Java 控制面板——我观察到这会将更新从 deployment.properties 文件复制到注册表项 DeploymentProperties
  3. 终止运行 Java 控制面板的 javaw 进程

    • 然后在 IE 中运行使用我本地 Java 小程序的程序
    • 然后将deployment.properties 文件恢复为原始文件,通过脚本启动Java 控制面板,并终止运行Java 控制面板的javaw 进程。

我也试过反之亦然——更新注册表项——但文件没有改变,Java控制面板将注册表项的值恢复为与未修改的deployment.properties文件一致!因此,更新注册表项是一种错误的方法。

有一个更好的方法吗?我上面的三步解决方案(修改属性)是它要完成的任务。是否有可以修改给定部署属性的 Java 命令行实用程序?有没有办法通过小程序标签的属性将这些部署属性传递给 JVM,只在给定的 Java 小程序中有效?

我使用了 Windows XP(32 位和 64 位)和 Windows 7(64 位)以及 Internet Explorer 7、8 和 9。如果有一个适用于 Windows XP、Windows Vista 的(简单)解决方案会很好、Windows 7 和 Windows 8。

4

4 回答 4

3

只需制作您自己的deployment.properties文件并将其放在 *{User Application Data Folder}\LocalLow\Sun\Java\Deployment* 位置。或编辑现有文件。需要重新启动互联网浏览器。

http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/properties.html中所述

于 2013-11-18T11:29:18.103 回答
0

Set it on installation as per article below:

http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/client-security.html

On installation, the WEB_JAVA_SECURITY_LEVEL argument has the following effect:

WEB_JAVA_SECURITY_LEVEL=VH sets the security level to very high
WEB_JAVA_SECURITY_LEVEL=H sets the security level to high
WEB_JAVA_SECURITY_LEVEL=M sets the security level to medium
WEB_JAVA_SECURITY_LEVEL=L sets the security level to low

After installation of the JRE, verify the security level settings in the Java Control Panel.

于 2013-02-10T23:25:28.833 回答
0

我已经用 java 7u25 完成了我的测试

当你在这里放置deployment.properties c:\windows\sun\java\deployment\deployment.properties

下次运行 javaw 或打开控制面板(也运行 javaw)时,新设置将生效。

理论上,您应该能够使用您的脚本删除一个新的 deployment.properties 文件,立即运行您的应用程序。关闭应用程序。然后将原始的deployment.properties 文件复制回来以恢复安全设置。

我还想提一下,您可以通过将存储受信任证书存储的位置更改为共享位置来摆脱“是否要运行此应用程序”框。将通过在任何其他计算机上手动批准证书生成的trusted.certs 文件放入其中。请注意,额外的斜杠是必需的,因为冒号是保留字符,反斜杠是转义字符。

#moves the user trusted certificates store to a shared location so we can pre-approve controls
deployment.user.security.trusted.certs=C\:\\Program Files\\Java\\jre7\\security\\trusted.certs
于 2013-09-05T20:47:44.113 回答
0

只需搜索“配置 Java”,这将打开“Java 控制面板”。它位于您的 JRE 文件夹中的文件。

或者,您可以转到“控制面板”并单击“Java”图标。

在那里,您可以根据需要降低或提高安全级别。

我希望我有所帮助。

祝你今天过得愉快。:)

于 2016-10-29T09:55:14.197 回答