这些 Java 教程是针对 JDK 8 编写的。本页面描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java 语言更改以获取 Java SE 9 及后续版本中更新的语言特性的摘要。
请参阅JDK 发布说明以获取有关所有 JDK 发布的新功能、增强功能以及已删除或弃用选项的信息。
在之前的步骤中,您在exampleraypolicy策略文件中创建了一个条目,授予由susan签名的代码权限从C:\TestData\目录(或您的主目录中的testdata目录,如果您在UNIX上工作)中读取文件。现在,即使在使用安全管理器运行应用程序时,您应该能够成功执行Count程序以读取并计算指定目录中文件中的字符数。
如在创建策略文件课程的最后所述,有两种可能的方法可以将exampleraypolicy文件视为整体策略的一部分,除了在安全属性文件中指定的策略文件之外。第一种方法是在传递给运行时系统的属性中指定额外的策略文件。第二种方法是在安全属性文件中添加一行指定额外的策略文件。
您可以使用-Djava.security.policy命令行参数来指定应使用的策略文件,除了或替代安全属性文件中指定的策略文件。
要运行Count应用程序并包含exampleraypolicy策略文件,请在包含sCount.jar和exampleraypolicy文件的目录中键入以下命令:
java -Djava.security.manager
-Djava.security.policy=exampleraypolicy
-cp sCount.jar Count C:\TestData\data
注意:在-D和-cp之前有一个空格,将命令键入单行。
程序应报告指定文件中的字符数。
如果仍然报告错误,则策略文件中有问题。使用策略工具检查您在上一步中刚创建的权限,并更正任何拼写错误或其他错误。
您可以在安全属性文件中的policy.url.n属性中指定一些URL(包括形如"http://"的URL),并且所有指定的策略文件都将被加载。
因此,让解释器考虑您的exampleraypolicy文件的策略条目的一种方法是在安全属性文件中添加指示该文件的条目。
安全属性文件位于
java.home\lib\security\java.securityjava.home/lib/security/java.securityjava.home 部分指示了JRE安装的目录。
要修改安全属性文件,在适合编辑ASCII文本文件的编辑器中打开它。然后在以 policy.url.2 开头的行后面添加以下行:
policy.url.3=file:/C:/Test/exampleraypolicy policy.url.3=file:${user.home}/test/exampleraypolicy在UNIX系统中,你也可以明确指定你的主目录,比如:
policy.url.3=file:/home/susanj/test/exampleraypolicy
接下来,在命令窗口中,进入包含 sCount.jar 文件的目录,也就是 C:\Test 或 ~/test 目录。在一行中输入以下命令:
java -Djava.security.manager
-cp sCount.jar Count C:\TestData\data
与第一种方法一样,如果程序仍然报错,说明策略文件有问题。使用策略工具检查你在 上一步 中创建的权限,并更正任何拼写错误或其他错误。
exampleraypolicy 文件。