如何从 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"
所以我可以做到以下几点:
- 通过脚本调整deployment.properties文件(保存原始文件)
- 通过脚本启动 Java 控制面板——我观察到这会将更新从 deployment.properties 文件复制到注册表项 DeploymentProperties
终止运行 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。