Jejeje, eso nos pasa a todos a veces.
Hay que tener en cuenta que la portabilidad de Java puede llegar hasta donde le deja el sistema operativo, pero no más alla. Por ejemplo, si tu escribes los path de fichero con la barra "/", nadie te asegura que eso funcione en todos los S.O., así que aunque uses File, que es portable, es responsabilidad tuya escribir el path de forma que el S.O. por debajo lo entienda (usando la propiedad "file.separator", por ejemplo).
Magia no puede hacer
PD: No lo digo por ti, ofl666, si no por gente que a veces se queja de que Java no es portable, bla, bla, cuando lo que estan haciendo es pedir peras al olmo