如何从Windows命令提示符修改Java控制面板选择(对应于deployment.properties文件)?具体来说,我正在寻找可以影响更改的命令"Action for local applets"
选择,在"Custom Security Level Settings"
window (单击 Java 控制面板“安全”选项卡中“安全级别”滑块的“自定义”设置旁边的“设置...”按钮), from "Prompt user"
to "Run without prompt"
。此设置的默认值随 Java 7 的更新 11 更改,它会干扰自动测试程序的运行,我现在正在修复该程序,方法是在 IE 启动 java.exe 时弹出安全警告对话框窗口,除非此 Java Control面板设置已预先调整。该测试程序启动 IE 来运行本地 Java 小程序,该小程序使用 AWT 编写,并且不访问任何网站。
注意,这个问题最近已经被讨论过——参见https://service.parachat.com/knowledgebase/273/I-see-a-Do-you-want-to-run-this-application-security-warning.html https://service.parachat.com/knowledgebase/273/I-see-a-Do-you-want-to-run-this-application-security-warning.html
对于我的任务,手动修改此 Java 控制面板设置是解决问题的最不理想的方法,因为我正在修复的程序是自动化测试套件的一部分,该套件部署在许多计算机上,并且需要手动干预部署过程容易出错。我需要从 Windows 命令提示符批处理文件运行这些命令。
我发现这些安全级别选择记录在 Java 部署.properties 文件和 2 个 Windows 注册表中,其名称以结尾的键下"Software\JavaSoft\DeploymentProperties".
中全面讨论了deployment.properties文件Oracle Java SE 文档“部署配置文件和属性” http://docs.oracle.com/javase/7/docs/technotes/guides/deployment/deployment-guide/properties.html但没有提到任何明显的事情"Action for local applets"
,也许是因为这个属性是最近添加的(?)
当我调整 Java 安全级别并"Action for local applets"
在Java 控制面板中,我看到deployment.properties 文件以及DeploymentProperties 注册表项中反映的更改。
所以我可以执行以下操作:
- 通过脚本调整deployment.properties文件(保存原件)
- 通过脚本启动Java控制面板——我观察到这会将更新从deployment.properties文件复制到注册表项DeploymentProperties
-
终止运行 Java 控制面板的 javaw 进程
- 然后在 IE 中运行使用本地 Java 小程序的程序
- 然后将deployment.properties文件恢复为原始文件,通过脚本启动Java控制面板,并终止运行Java控制面板的javaw进程。
我也尝试了反之亦然 - 更新注册表项 - 但文件没有更改,并且 Java 控制面板将注册表项的值设置恢复为与未修改的部署.properties 文件一致!所以更新注册表项是wrong方法来做到这一点。
有一个更好的方法吗?我上面的三步解决方案(修改属性)对于它要实现的目标来说是一个麻烦。是否有可以修改给定部署属性的 Java 命令行实用程序?有没有办法通过 applet 标签的属性将这些部署属性传递给 JVM,以便仅在给定的 Java applet 内有效?
我使用 Windows XP(32 位和 64 位)和 Windows 7(64 位)以及 Internet Explorer 7、8 和 9。如果有一个适用于 Windows XP、Windows Vista 的(简单)解决方案,那就太好了、Windows 7 和 Windows 8。