I was trying to run Apache ZooKeeper on Windows the other day. Getting it to run was super easy. I was more interested in running it without any file/snapshot logging.
I did ask around in the forums and I thought letting the "dataDir" directory to point to "/dev/null" would solve the problem. But being a (ahem) Windows user I couldn't quite get the "/dev/null" to work. In Windows the equivalent is "nul" but it doesn't quite work when you try to use it from Java. Some operations work, but some don't.
[Update 1:
Strangely getAbsolutePath()
prepends the current directory's path but the file does not get created.
Creating nul:\abc.log
throws an exception. But nul:abc.log
does not and Java says its absolute path is d:\dump\nul:abc.log
but the file is not there. Which means that it is indeed writing to the "null" device. I wonder what I'm missing.]
As usual, the full code is here: http://gist.github.com/484116
Here's the output and it shows what works and what doesn't:
Tuesday, July 20, 2010
/dev/null on Windows
Subscribe to:
Post Comments (Atom)
6 comments:
I think the Windows null device name is NUL:
Not D:\somedir\nul:
Just NUL:
Like C: D: etc.
Similarly the console device in Windows is CON:
Yup, that's what I did in very the first line but Java new File("nul:").getAbsolutePath() mysteriously adds a prefix to it.
Looks like a bug in the java.io.File implementation. Would suggest file a bug on the JDK: http://bugreport.sun.com/bugreport/
java.io.File depends on an abstract class called FileSystem, which is implemented as a native library.
I've filed a bug report. Waiting for a confirmation from Oracle.
Hi did you get solution of your problem?
@Amit - no luck
Post a Comment