Not sure about Java, but Scala works fine for me in cygwin after doing this[1][2]. I'd have to have a more detailed example (that I can reproduce myself) of what gets messed up though if it's something beyond that, since I can't remember anymore exactly what else I had to do offhand.
Cygwin does not alter the behaviour of existing programs. It is a DLL that can be compiled into new programs to provide lots of POSIX/Linux compatibility. It also comes shipped with lots of pre-compiled Linux binaries of common tools.
If you run your pre-existing JRE, its behaviour won't change. If you run a JRE compiled with cygwin (I've no idea if they provide one or not) then it will have UNIX-style path support.
[1] http://stackoverflow.com/questions/17124689/i-really-would-l...
[2] http://stackoverflow.com/questions/4468967/two-problems-with...