使用以下代码尝试设置策略文件:

ClassLoader cl= getClass().getClassLoader();
URL policyURL =cl.getResource("res/policy/new_policy.policy");
System.setProperty("java.security.policy", policyURL.toString());

我在最后一行得到了java.lang.NullPointerException
该文件在我的项目目录中的正确路径中。

问题:什么可能导致此异常?

答:从eclipse运行,路径是相对于主项目文件夹而不是项目的bin文件夹构造的。考虑到这一点,移动bin文件夹中的res文件夹解决了该问题,而无需更改上面的任何代码。

最佳答案

如果路径在您的项目中,请添加/

cl.getResource("/res/policy/new_policy.policy")

但是我建议您打印policyURL的值以检查是否可以正常检索文件。

如果您在Eclipse中执行,请记住资源必须位于resources文件夹中,以便在构建时将它们转到classes文件夹。

Eclipse仅执行类,并且这些类位于输出文件夹(bin)中。

10-07 19:46
查看更多