OK, so it's very rare that I say this, but FUCK YOU JAVA!!
I've had some ups and some downs with Java, most of which has been my lack of competence, or being too lazy to do something, but now.... now.. Java is the one to blame, and oooooh boy am I pissed off!
So I just installed JDK 7, long anticipated, I almost wet my self in excitement. I get the x64 edition for both Windows and Linux and proceed to install it in both locations.
Now the whole idea behind Java, is that the code AND the binary are supposed to be "cross-platform", because it just runs in the Java virtual machine. As long as the target OS has a runtime environment for Java.. it will run.
So I decided that in one of my applications, I was going to add the ability for the program to automatically detect if / when a config file changes, and allow the user to reload it. In Java7 this is relatively easy as demonstrated here:
http://download.oracle.com/javase/tutorial/essential/io/notification.htmlhttp://download.oracle.com/javase/tutorial/essential/io/examples/WatchDir.javaThis all looks fine and dandy, until you come to compile that example on both operating systems.... it works on one and not the other, WHAT THE FUCK!
import static java.nio.file.StandardWatchEventKinds.*;
Turns out this little bastard is to blame, on windows it's StandardWatchEventKinds and in Linux it's StandardWatchEventKind.This may only seem like a minor oversight, but they've done a similar thing in all their documentation. In places they mention the Linux version, but all of the documentation points to the StandardWatchEventKinds.The worst thing about all this is, that I tried to report a bug to sun, but every time to go to do that, the bug report page doesn't load and it's sooooooooo frustrating! >=(TL;DR: Incompatibilities between Linux and Windows Java Development Kit cause frustration; can't report on Sun's website because the bug report section is broken. FML.