繁体   English   中英

如何从Windows命令提示符修改Java控制面板选择(对应于deployment.properties文件)?

[英]How to modify Java Control Panel selections (corresponding to deployment.properties file) from windows command prompt?

如何从Windows命令提示符修改Java控制面板选择(对应于deployment.properties文件)? 具体来说,我正在"Custom Security Level Settings"窗口中查找可以对"Action for local applets"选项"Action for local applets"更改的命令( 单击“自定义”设置旁边的“设置...”按钮“ “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注册表下的名称以"Software\\JavaSoft\\DeploymentProperties".结尾的键下"Software\\JavaSoft\\DeploymentProperties". Oracle Java SE文档“部署配置文件和属性”中全面讨论了deployment.properties文件,但没有提到关于"Action for local applets"明显内容,可能是因为这个属性是最近添加的(?)当我调整Java安全级别时Java控制面板中的"Action for local applets" ,我看到deployment.properties文件以及DeploymentProperties注册表项中反映的更改。

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

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

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

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

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

我使用的是Windows XP(32位和64位)和Windows 7(64位)以及Internet Explorer 7,8和9.最好有一个适用于Windows XP,Windows Vista的(简单)解决方案,Windows 7和Windows 8。

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

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

根据以下文章将其设置为安装:

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

安装时,WEB_JAVA_SECURITY_LEVEL参数具有以下效果:

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

安装JRE后,验证Java控制面板中的安全级别设置。

我用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

只需搜索“配置Java”,即可打开“Java控制面板”。 它在JRE文件夹中的文件。

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

在那里只需要降低或提高安全级别。

我希望我有所帮助。

祝你今天愉快。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM