The documentation of System.Environment.getProgName says that
"However, this is hard-to-impossible to implement on some non-Unix OSes, so instead, for maximum portability, we just return the leafname of the program as invoked. Even then there are some differences between platforms: on Windows, for example, a program invoked as foo is probably really FOO.EXE, and that is what getProgName will return."
This library tries to fix this issue. It also provides some platform-specific functions (most notably getting the path of the application bundle on OSX). Supported operating systems:
- Win32 (tested on Windows XP / x86 only)
- Mac OS X (tested on Leopard / x86 only)
- Linux
- FreeBSD (tested on FreeBSD 6.4)
- *BSD (with procfs mounted, plus fallback for certain shells; untested)
- Solaris (untested, and probably works on Solaris 10 only)