Search code examples
javawindowsjmsjndiinitial-context

How can I specifiy the drive letter (windows) for the PROVIDER_URL of the JNDI InitialContext


I am using the com.sun.jndi.fscontext.RefFSContextFactory file based JNDI context factory. It seems to take the drive of the where the java application is started in.

Hashtable properties = new Hashtable(2);
properties.put(Context.PROVIDER_URL,"file:///tmp/jms/mycontext");
properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
InitialContext ctx = new InitialContext(properties);

How can I specify the drive letter such as d:/tmp/jms/mycontext ? Using file://d:/tmp/jms/mycontext seems to still go to the c drive on my system


Solution

  • After some troubleshooting and debugging myself I figured it out. Using an extra \ before the drive letter solves it

    properties.put(Context.PROVIDER_URL,"file://\\d:\\tmp\\mycontext");