这问题范围也太大了,最大可能policy文件的配置有问题。问问题问清楚一点吧。

解决方案 »

  1.   

    是这样的:
    1.//PiRemote.java:
    package com.suncold.ehuang.pi;
    import java.rmi.*;
    interface PiRemote extends Remote {
    double getPi() throws RemoteException;
    }
    2.//Pi.java
    package com.suncold.ehuang.pi;
    import java.net.*;
    import java.rmi.*;
    import java.rmi.registry.*;
    import java.rmi.server.*;
    public class Pi extends UnicastRemoteObject implements PiRemote {
    public double getPi() throws RemoteException {
    return Math.PI;
    }
    public Pi() throws RemoteException {}
    public static void main(String[] arguments) {
    System.setSecurityManager(new RMISecurityManager());
    try {
    Pi p=new Pi();
    Naming.bind("//Default:1010/Pi",p);
    } catch(Exception e) {
    System.out.println("Error -- "+e.toString());
    // e.printStrackTrace();
    }
    }
    }
    3.//OutputPi.java
    package com.suncold.ehuang.pi;
    import java.rmi.*;
    import java.rmi.registry.*;
    public class OutputPi {
    public static void main(String[] arguments) {
    System.setSecurityManager(new RMISecurityManager());
    try {
    PiRemote pr=(PiRemote)Naming.lookup("//Default:1010/Pi");
    for(int i=0;i<10;i++) {
    System.out.println("Pi="+pr.getPi());
    }
    } catch(Exception e) {
    System.out.println("Error -- "+e.toString());
    // e.printStrackTrace();
    }
    }
    }
    -------------------------------------------------------------
    我现在编译成功了,放在一个文件夹"pi"中,运行OutputPi时出错:
    Exception in thread "main" java.lang.NoClassDefFoundError: OutputPi (wrong name:
     com/suncold/ehuang/pi/OutputPi)
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:11
    1)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
    -------------------------------------------------------------
    请问是怎么回事?