From J2SE 1.3.1 API Specs
A canonical pathname is both absolute and unique. The precise definition of canonical form is system-dependent. This method first converts this pathname to absolute form if necessary, as if by invoking the getAbsolutePath() method, and then maps it to its unique form in a system-dependent way. This typically involves removing redundant names such as "." and ".." from the pathname, resolving symbolic links (on UNIX platforms), and converting drive letters to a standard case (on Win32 platforms).
See the following code
Output is as follows
---------------------
D:\Program Files\JDEV_905\jdev\bin\..\teststuff.htm
D:\Program Files\JDEV_905\jdev\teststuff.htm
d:\teststuff.htm
D:\teststuff.htm