From JavaProgramming
/* UseService.java */
import javax.naming.*;
import java.io.File;
import java.util.Hashtable;
/**
*
class UseService {
public static void main(String[] args) {
// Set up the environment for creating the initial context
Hashtable env = new Hashtable();
// Set up context for JNDI file system service
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.fscontext.RefFSContextFactory");
// This will allow you to inspect the folder c:\java
env.put(Context.PROVIDER_URL,
"file:/java");
// ctx must be initialised, when calling Context.close() in the finally block
Context ctx = null;
try {
// Create the initial context
// May generate NamingException
ctx = new InitialContext(env);
// Call lookup() on this object, to lookup a file relative to the
// /java folder.
// Cast return type from lookup() into a File type
// May generate NamingException
File file = (File)ctx.lookup("JNDI/UseService.java");
// For example, you can specify "JNDI/UseService.java" to
// find out information about your current file (!).
System.out.println("Length: " + file.length());
System.out.println("Can read: " + file.canRead());
// Output:
// Length: xxxx
// Can read: true
}
// Remember to catch any NamingExceptions and
// display any error information on the console.
catch (NamingException ex) {
System.out.println(ex.getMessage());
}
finally {
try {
// Allways close server connections in a finally block.
// If close() is called in the try block it might not be called
// when an exception occurs on a previous line.
// Not closing the connection will leave dangling resources on the server
// May generate NamingException
ctx.close();
}
catch (NamingException ex) {
System.out.println(ex.getMessage());
}
}
}
}