1.jre下面有个policytool的工具
2。生成.java.policy后,文件内容为
grant
{
permission java.net.SocketPermission "*","listen";
permission java.net.SocketPermission "*","accept";
permission java.net.SocketPermission "*","connect";
permission java.net.SocketPermission "*","resolve";
};应该可以搞定。

解决方案 »

  1.   

    楼上的,不好意思jre是什么?我用的是jbuilder7.0,该怎么操作?
      

  2.   

    怎么使用这个policytool工具生成策略文件呢?
      

  3.   

    晕,总共就那么几个选项。你自己试试吧。我记得file\new生成.java.policy就可以了。把我给你的代码考进去就行了。.java.policy再你得user目录里。就是mydocument&setting\用户名下面。
      

  4.   

    1.选"File/Save as". 2.选择路径(我记得默认就可以,看看跟我上面说得是不是一样的)  3.文件名 ".java.policy"  (记得前面有个“.“号). 4.选"Save".5.去找文件6.ok,搞定
      

  5.   

    笑着:你好!谢谢你的帮助,按你所说的,那个错误解决了,但是再次运行时却出错了这样的错误:
         HelloServer err:RemoteException occurred in server thread; nested exception is: 
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
    java.lang.ClassNotFoundException: test_rmi.HelloImp1_Stubtest_rmi.HelloImp1_Stub这个HelloImp1_Stub类已经生成了啊!怎么回事呢?
      

  6.   

    你的classpath有没有问题?应该是他的问题,吧classpath设定到包的那一层看看比如文件位置d:\hehe\haha\xixi.stubpackage haha;
    classpath=d:\hehe;
      

  7.   

    请问是不是将这个路径设置到系统环境变量中的classpath中的呢?如果是,就还是会出错这个错误。
      

  8.   

    我在jsp区问了同样的问题,一直没解决,搞不懂!郁闷ing
    http://expert.csdn.net/Expert/topic/1338/1338441.xml?temp=.3698542
      

  9.   

    把你的程序发给我看看,确定一下是什么错误,我没遇到过。[email protected]
      

  10.   

    我这边还是没有错误,应该是你的什么设定有问题了。问题出不来,我没有办法帮你了,只能帮到这里了。good luck.
      

  11.   

    你是在Jbuilder7.0中直接运行的吗?配置是什么样的?
      

  12.   

    把你在jbuilder中运行时,显示的CLASSPATH贴出来看看
      

  13.   

    D:\Program Files\jbuilder7.0\jdk1.3.1\bin\javaw -classpath "E:\work\huangyuan_test\test_RMI\classes;D:\Program Files\bes\lib\asrt.jar;D:\Program Files\bes\lib\lm.jar;D:\Program Files\bes\lib\xmlrt.jar;D:\Program Files\bes\lib\vbjorb.jar;D:\Program Files\bes\lib\vbejb.jar;D:\Program Files\bes\lib\vbsec.jar;D:\Program Files\bes\lib\beandt.jar;D:\Program Files\bes\lib\dx.jar;D:\Program Files\bes\SonicMQ\lib\client.jar;D:\Program Files\jbuilder7.0\lib\borlandxml.jar;D:\Program Files\jbuilder7.0\lib\xerces.jar;D:\Program Files\jbuilder7.0\lib\xml4j.jar;D:\Program Files\jbuilder7.0\lib\jdom.jar;D:\Program Files\jbuilder7.0\jdk1.3.1\demo\jfc\Java2D\Java2Demo.jar;D:\Program Files\jbuilder7.0\jdk1.3.1\jre\lib\i18n.jar;D:\Program Files\jbuilder7.0\jdk1.3.1\jre\lib\jaws.jar;D:\Program Files\jbuilder7.0\jdk1.3.1\jre\lib\rt.jar;D:\Program Files\jbuilder7.0\jdk1.3.1\jre\lib\sunrsasign.jar;D:\Program Files\jbuilder7.0\jdk1.3.1\lib\dt.jar;D:\Program Files\jbuilder7.0\jdk1.3.1\lib\htmlconverter.jar;D:\Program Files\jbuilder7.0\jdk1.3.1\lib\tools.jar"  -Djava.rmi.server.codebase=file:E:\work\huangyuan_test\test_RMI\classes -Djava.security.policy=file:E:\work\huangyuan_test\test_RMI\.java.policy test_rmi.HelloImp1
      

  14.   

    test_rmi.HelloImp1_Stub在这个路径下吗?
    E:\work\huangyuan_test\test_RMI\classes
      

  15.   

    test_rmi.HelloImp1_Stub在这个E:\work\huangyuan_test\test_RMI\classes\test_rmi路径下.后来我把run中的proceties中加了
    -Djava.rmi.server.codebase=file:E:\work\huangyuan_test\test_RMI\classes\test_rmi -Djava.security.policy=file:E:\work\huangyuan_test\test_RMI\.java.policy
    但是还是没有用!
      

  16.   

    路径不要改try{
          HelloImp1 obj=new HelloImp1();
          Naming.rebind("//127.0.0.1/HelloServer",obj);
          System.out.println("HelloServer bound in registry");
        }catch (Exception e){
          System.out.println("HelloServer err:"+e.getMessage());
          e.printStackTrace();
        }
    换成下面的代码试试看
    try{
          HelloImp1 obj=new HelloImp1();
          Naming.rebind("//127.0.0.1/HelloServer",obj);
          System.out.println("HelloServer bound in registry");
        } catch (RemoteException ex){
          Registry r = LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
                    r.rebind("//127.0.0.1/HelloServer",obj);
                
        }catch (Exception e){
          System.out.println("HelloServer err:"+e.getMessage());
          e.printStackTrace();
        }
      

  17.   

    请问是不是将这个路径设置到系统环境变量中的classpath中的呢?如果是,就还是会出错这个错误不要把你的stub class的路径放到系统环境变量中的classpath中
    而是要通过
    -Djava.rmi.server.codebase=file:/E:\work\huangyuan_test\test_RMI\classes/
    指定
      

  18.   

    JAVA -Djava.rmi.server.codebase=file:E:\work\huangyuan_test\test_RMI\classes\test_rmi/-Djava.security.policy=.java.policy (you class)这样看看
      

  19.   

    JAVA -Djava.rmi.server.codebase=file:/E:\work\huangyuan_test\test_RMI\classes\test_rmi/-Djava.security.policy=.java.policy (you class)这样看看(上面写少了)
      

  20.   

    满子:你好!按你说的去做了,但是出错了,obj这个对象的域不对,不能出现在catch中。
      

  21.   

    满子:你好!按你说的去做了。但是obj出错了,说是不能在catch所属的域。
      

  22.   

    满子:你好!按你说的去做了。但是obj出错了,说是不能在catch所属的域。
      

  23.   

    http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=20357不过这是dos下操作,你用jb工程,看看有没有用吧。
      

  24.   

    笑着:你好!(your class)里面写的是哪一个类呢?要后缀名吗?
      

  25.   

    HelloImp1 obj=new HelloImp1();
    放在try块的外面就可以了。
    不过我估计是路径的问题,有没有这样试过
    不要把你的stub class的路径放到系统环境变量中的classpath中
    而是要通过
    -Djava.rmi.server.codebase=file:/E:\work\huangyuan_test\test_RMI\classes/
    指定
      

  26.   

    也就是系统环境变量classpath不能包含E:\work\huangyuan_test\test_RMI\classes
      

  27.   

    可惜我现在系统上不让装盗版软件,要不然可以直接试一下,就比较直观了
    这位MM学java多久了?不要一上来就用这种集成工具,这样会掩盖很多问题的。
      

  28.   

    恩,同意。我使用没用过的东东之前都要用dos方法作座练习的。
      

  29.   

    不好意思!我学java才两,三个月,有很多东西还要向大家请教!你们说用DOS,如何操作呢?步骤如何呢?
      

  30.   

    没有做成功啊!你当时是在Dos中运行的吗?
      

  31.   

    1。rmic -d . test_rmi.HelloImp1(用这个命令时要注意,你的test_rmi.HelloImp1 class的路径要在系统环境变量classpath里,也就是要让rmic命令能找到你的classpath)2 .启动server
    用命令 rmiregistry
    然后java -Djava.rmi.server.codebase=file:/E:\work\huangyuan_test\test_RMI\classes
    /
    -Djava.security.policy=java.policy 
    我想你出错的原因就在于
    file:/E:\work\huangyuan_test\test_RMI\classes
    /
    你的codebase没有加两个反斜杠
    3。就是运行你的客户端。不过你好像还没写哦
      

  32.   

    我们六点钟下班,我今天还要去打羽毛球呢,尽快把你的问题搞定吧,这样我也有点成就感啊,帮帮忙了,大姐,快点吧
    先在JBuider里,改改看,主要是CODEBASE
      

  33.   

    对不起,让你心烦了!我在run中的properties中的VM中设置如下:
    -Djava.rmi.server.codebase=file:/E:\work\huangyuan_test\test_RMI\classes\test_rmi/-Djava.security.policy=file:/E:\work\huangyuan_test\test_RMI\.java.policy(HelloImp1_Stub.class)
      

  34.   

    your class当然是你的server class名了,也就是test_rmi.HelloImp1 
    要运行的就是这个类嘛,对了,请问你是怎么运行的?
      

  35.   

    你的codebase指的有问题啊到classes就可以了,建议你好好理解一下package
    和classpath的概念,另外就是
    (HelloImp1_Stub.class)太让我意外了
    抛开参数不管,要运行一个一般的class也是要写成
    java xxx这种形式啊
    你怎么要加括号呢?搞不懂,这个名字就是我上面说的test_rmi.HelloImp1 
    也就是你的server class的全名
      

  36.   

    先运行tool下的Rmiregistry,然后到run下hello world server(我自己在RUN中定义的)。哦!对了,以下是我写的一个客户端的applet程序:在这里引用package test_rmi;import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import java.rmi.Naming;
    import java.rmi.RemoteException;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2003</p>
     * <p>Company: </p>
     * @author unascribed
     * @version 1.0
     */public class HelloApplet extends Applet {
      private boolean isStandalone = false;
      String message="blank";
      Hello obj=null;
      //Get a parameter value
      public String getParameter(String key, String def) {
        return isStandalone ? System.getProperty(key, def) :
          (getParameter(key) != null ? getParameter(key) : def);
      }  //Construct the applet
      public HelloApplet() {
      }
      //Initialize the applet
      public void init() {
        try {
          jbInit();
        }
        catch(Exception e) {
          e.printStackTrace();
        }
      }
      //Component initialization
      private void jbInit() throws Exception {
        obj=(Hello)Naming.lookup("//"+getCodeBase().getHost()+"/HelloServer");
        message=obj.sayHello();
      }
      public void paint(Graphics g){
        g.drawString(message,25,50);
      }
      //Get Applet information
      public String getAppletInfo() {
        return "Applet Information";
      }
      //Get parameter info
      public String[][] getParameterInfo() {
        return null;
      }
    }
      

  37.   

    我原来是写到class一级的,但是没用,现在把它改回来也没有用。
    -Djava.rmi.server.codebase=file:/E:\work\huangyuan_test\test_RMI\classes/-Djava.security.policy=file:/E:\work\huangyuan_test\test_RMI\.java.policy
      

  38.   

    HelloApplet.html的源代码如下:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <title>
    HTML Test Page
    </title>
    </head>
    <body>
    test_rmi.HelloApplet will appear below in a Java enabled browser.<br>
    <applet
      codebase = "file:/E:\work\huangyuan_test\test_RMI\classes/"
      code     = "test_rmi.HelloApplet.class"
      name     = "TestApplet"
      width    = "400"
      height   = "300"
      hspace   = "0"
      vspace   = "0"
      align    = "middle"
    >
    </applet>
    </body>
    </html>