使用以下代码尝试设置策略文件:
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
)中。