# 请参阅策略文件效果

> 原文： [https://docs.oracle.com/javase/tutorial/security/toolsign/rstep4.html](https://docs.oracle.com/javase/tutorial/security/toolsign/rstep4.html)

在前面的步骤中，您在`exampleraypolicy`策略文件中创建了一个条目，授予由`susan`权限签名的代码，以便从`C:\TestData\`目录（或主目录中的`testdata`目录）读取文件（如果您在 UNIX 上工作） ）。现在，您应该能够成功执行`Count`程序来读取和计算指定目录中文件中的字符，即使您使用安全管理器运行应用程序也是如此。

如[创建策略文件](../tour1/index.html)课程结尾所述，除了在策略文件中指定的策略文件外，还有两种方法可以将`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`之前有一个空格。

程序应报告指定文件中的字符数。

如果仍然报告错误，则策略文件中存在错误。使用策略工具检查您刚刚在[上一步](rstep3.html)中创建的权限，并更改任何拼写错误或其他错误。

您可以在安全属性文件的`policy.url.n`属性中指定多个 URL（包括“http：//”形式的 URL），并且将加载所有指定的策略文件。

因此，解释器考虑`exampleraypolicy`文件的策略条目的一种方法是在安全属性文件中添加一个指示该文件的条目。

* * *

**Important:** If you are running your own copy of the JDK, you can easily edit your security properties file. If you are running a version shared with others, you may only be able to modify the system-wide security properties file if you have write access to it or if you ask your system administrator to modify the file when appropriate. However, it's probably not appropriate for you to make modifications to a system-wide policy file for this tutorial test; we suggest that you just read the following to see how it's done or that you install your own private version of the JDK to use for the tutorial lessons.

* * *

安全属性文件位于

*   **Windows** ： `_java.home_ \ lib \ security \ java.security`
*   **UNIX** ： `_java.home_ /lib/security/java.security`

_`java.home`_ 部分表示安装 JRE 的目录。

要修改安全属性文件，请在适合编辑 ASCII 文本文件的编辑器中将其打开。然后在以`policy.url.2`开头的行之后添加以下行：

*   **Windows** ： `**policy.url.3 = file：/ C：/ Test / exampleraypolicy**`
*   **UNIX** ： `**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

```

与方法 1 一样，如果程序仍然报告错误，则策略文件出现问题。使用策略工具检查您刚刚在[上一步](rstep3.html)中创建的权限，并更改任何拼写错误或其他错误。

* * *

**Important:** Before continuing, you may want to delete the line you just added in the security properties file (or comment it out), since you probably do not want the `exampleraypolicy` file included when you are not running the tutorial lessons.

* * *