我试图在java中学习RMI API。一切似乎终于有效了;我的服务器已启动并运行,我的客户端可以连接。
但是当我从Eclipse导出项目时,作为一个带有Client作为启动配置的可运行jar,现在这个jar无法连接到我正在运行的服务器。我得到AccessControlException
。
if (System.getSecurityManager() == null) {
System.setProperty("java.security.policy", "src/mySecurity");
System.setSecurityManager(new SecurityManager());
}
客户端和服务器都将这些作为主要方法的第一行。所以我认为他们无法找到“我的安全”。我将项目导出为jar之后的文件?我该怎么办?
编辑:当我在我的项目中访问.png文件时,我这样做MyClass.class.getResource("/resources/myImage.png")
在导出为jar时效果很好。但据我了解,只有.java文件应该放在我项目的src
文件夹中?但是在src文件夹之外的任何内容都不包含在jar文件中。 (请注意,myImage.png位于src中)。
所以目前我导出jar并将其放在一个包含resources文件夹的文件夹中(我从IDE工作区复制)。这是我应该这样做的方式,还是我实际上可以将我的项目导出为具有与src相同级别的访问资源的可执行jar?
答案 0 :(得分:0)
使用
运行JVM-Djava.security.debug=access,failure,policy
policy
部分向您显示正在加载的策略文件。其余的帮助调试所有AccessControlExceptions
及其原因,并显示每个保护域中生效的保护域,以及每种情况下相关的策略文件。