你必须catch到NamingException异常
catch(NoInitialContextException ex)
{
ex.printStackTrace();
}
后增加
catch(NamingException ex)
{
ex.printStackTrace();
}

解决方案 »

  1.   

    catch(NoInitialContextException ex)
    {
    ex.printStackTrace();
    }
    换成下面这个就可以了,NoInitialContextException是NamingException的子类
     
      catch (NamingException ex) {
          ex.printStackTrace();
        }
      

  2.   

    按照各位前辈的指导,编译是通过了,不过在运行的时候,又出现了以下错误,请指导:
    Starting application D:\my\firstJndi.class
    Command line: "C:\j2sdk1.4.1\jre\bin\java.exe" -classpath D:\my firstJndi c:/jndi_root
    The current directory is: D:\my
    javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.jndi.fscontext.RefFSContextFactory.  Root exception is java.lang.ClassNotFoundException: com.sun.jndi.fscontext.RefFSContextFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:217)
    at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:42)
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:649)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
    at javax.naming.InitialContext.init(InitialContext.java:219)
    at javax.naming.InitialContext.<init>(InitialContext.java:195)
    at firstJndi.getInitialContext(firstJndi.java:19)
    at firstJndi.main(firstJndi.java:37)
    Interactive Session Ended
      

  3.   

    它现在说类找不到,你下面这个是正确的么?
    Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.fscontext.RefFSContextFactory");
    env.put(Context.PROVIDER_URL,"file:///c:/jndi_root");