Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决java.security.AccessControlException_Java_Rmi - Fatal编程技术网

如何解决java.security.AccessControlException

如何解决java.security.AccessControlException,java,rmi,Java,Rmi,我正在尝试创建一个rmi应用程序:客户端将文件传输到服务器。但是,当运行代码时,我会遇到安全管理器异常。 以下是客户端: import java.rmi.Naming; import java.rmi.RMISecurityManager; import java.util.Scanner; public class StartFileClient { public static void main(String[] args) { if (System.getSec

我正在尝试创建一个rmi应用程序:客户端将文件传输到服务器。但是,当运行代码时,我会遇到安全管理器异常。 以下是客户端:

  import java.rmi.Naming;
  import java.rmi.RMISecurityManager;
  import java.util.Scanner;
  public class StartFileClient {
  public static void main(String[] args) {
    if (System.getSecurityManager() == null)
        System.setSecurityManager(new RMISecurityManager());
    try{
        FileClient c=new FileClient("imed");            
        FileServerInt server=(FileServerInt)Naming.lookup("rmi://localhost/abc");
        server.login(c);
        System.out.println("Listening.....");           
        Scanner s=new Scanner(System.in);           
        while(true){
            String line=s.nextLine();
        }
    }catch(Exception e){
        e.printStackTrace();
    }
}   
}

以下是服务器端:

 import java.rmi.Naming;
public class StartFileServer {
public static void main(String[] args) {
    // TODO Auto-generated method stub
    try{

        java.rmi.registry.LocateRegistry.createRegistry(1099);

        FileServer fs=new FileServer();
        fs.setFile("itcrowd.avi");          
        Naming.rebind("rmi://localhost/abc", fs);
        System.out.println("File Server is Ready");

    }catch(Exception e){
        e.printStackTrace();
    }
}   
}

此外,我还创建了一个文件security.policy

  grant {
        permission java.security.AllPermission;
})


谢谢你的帮助

显然找不到您的策略文件。您需要通过
java.security.policy
系统属性指定其位置


但是,除非您使用的是代码库功能,否则请删除安全管理器。

我将策略文件放在我的文件夹包中,然后将其删除。但我得到了相同的错误:拒绝访问(“java.net.SocketPermission”“127.0.0.1:1099”“连接,解析”)…将策略文件放入“文件夹包”不会有任何特别的效果,删除它也不会有任何效果。你似乎没有读过我的答案。对不起,我怎么才能指定它的位置呢,您的意思是在服务器代码中还是在何处?通过设置我命名的系统属性,在使用它的JVM中。这是显而易见的吗?