Crossplatform delivery for Linux/Windows in one binary
GCJ/SWT is a pretty good way to deliver xplat apps. A single binary executable would suffice for both Linux and Windows if you did the platform adaptation layer selection at load-time or at run-time. What is missing is a way to run a single binary format on both platforms. This is not hard to do. Should do it.
Also, multiplatform projects should be converted from compile-time selection to load-time or run-time selection. The hard way to do it is to unify the namespaces at the API level, e.g. by consolidating mingw32 and linux /usr/include. The easier, better way to do it is to have mingw32 and linux build worlds for the adaptation back-ends, and a neutral build world for the adaptation front-end and the application code.
Finally, the adaptation back-end needs to take native plugins for device interfaces. This totally rocks.