Java RMI如何添加LIB(并授予它们套接字权限)

Java RMI如何添加LIB(并授予它们套接字权限),java,rmi,Java,Rmi,对于一个学校项目,我必须从一个独立的应用程序创建一个分布式系统。我们正在使用RMI进行通信,但遇到了一些问题 我创建的服务器启动正常,但是客户端(使用一些swing库等)给了我一个classNotFound异常。为了解决这个问题,我将项目使用的库添加到“C:\ProgramFiles\Java\jre6\lib\ext”。我更喜欢在客户机上放置libs(就像我对构建所做的那样) 有人能告诉我这是否可能,如果可能,怎么可能 问题还不止于此,如果我现在启动客户机,就会得到一个java.securit

对于一个学校项目,我必须从一个独立的应用程序创建一个分布式系统。我们正在使用RMI进行通信,但遇到了一些问题

我创建的服务器启动正常,但是客户端(使用一些swing库等)给了我一个classNotFound异常。为了解决这个问题,我将项目使用的库添加到“C:\ProgramFiles\Java\jre6\lib\ext”。我更喜欢在客户机上放置libs(就像我对构建所做的那样)

有人能告诉我这是否可能,如果可能,怎么可能

问题还不止于此,如果我现在启动客户机,就会得到一个java.security.AccessControlException。我使用一个策略文件,它如下所示:

grant
{  permission java.net.SocketPermission 
    "*:1024-65535", "connect,accept";
};
我还尝试添加所有LIB,但这也没有帮助:

grant codebase "file:${java.home}/../lib/ext/appframework-1.0.3.jar" {
   permission java.security.AllPermission;
};
grant codebase "file:${java.home}/../lib/ext/beansbinding-1.2.1.jar" {
   permission java.security.AllPermission;
};
grant codebase "file:${java.home}/../lib/ext/jcalendar-1.3.3.jar" {
   permission java.security.AllPermission;
};
grant codebase "file:${java.home}/../lib/ext/looks-2.0.1.jar" {
   permission java.security.AllPermission;
};
grant codebase "file:${java.home}/../lib/ext/swing-worker-1.1.jar" {
   permission java.security.AllPermission;
};
grant codebase "file:${java.home}/../lib/ext/swingx-1.6.1.jar" {
   permission java.security.AllPermission;
};
grant codebase "file:${java.home}/../lib/ext/swingx-bean.jar" {
   permission java.security.AllPermission;
};
grant codebase "file:${java.home}/../lib/ext/swingx-ws-2011_01_16.jar" {
   permission java.security.AllPermission;
};

grant
{  permission java.net.SocketPermission 
    "*:1024-65535", "connect,accept";
};
我希望任何人都能帮助我


-Rob

调试java 2安全异常是一个繁琐的试错过程。我猜您是在用JVM开关启动客户机来添加,并告诉它使用安全管理器-添加以下内容

-Djava.security.debug=access,failure


您将获得大量调试信息,但将其搜索为“拒绝访问”将显示需要针对哪个代码库授予哪些权限。这不是一个科学的过程-你只需要不断尝试,直到你认为你已经解决了所有的安全问题。

调试java 2安全异常是一个乏味的试错过程。我猜您是在用JVM开关启动客户机来添加,并告诉它使用安全管理器-添加以下内容

-Djava.security.debug=access,failure


您将获得大量调试信息,但将其搜索为“拒绝访问”将显示需要针对哪个代码库授予哪些权限。这不是一个科学的过程-你只需要不断尝试,直到你认为你已经解决了所有的安全问题。

这是可行的,但是你能告诉我哪些权限可能是问题所在吗?对不起,我不知道。最好用另一个答案。:)这是有效的,但是你能告诉我哪些权限可能是问题吗?对不起,我不知道。最好用另一个答案。:)谢谢,当我们超过最后期限时,我会给它一个机会(需要做很多工作,所以最好先让它发挥作用)谢谢,当我们超过最后期限时,我会给它一个机会(需要做很多工作,所以最好先让它发挥作用)
grant { 
    permission java.security.AllPermission; 
};