.NET or Java based small desktop app-Collection of common programming errors

Well, first, how important is cross platform support to you? If this is very important then Java is the way to go as .NET is really a non-starter in your situation. However, if you are considering .NET then I’m assuming cross-platform is not critical in which case .NET will provide you a simpler path to have your application look and behave like a typical Windows application.

As far as the issue of downloading the framework being a barrier; well many users will not have JRE. But also, many users will not have the latest version of the .NET framework either. It really depends on how serious these barriers are to you, how important cross platform support is, and who your target audience is.

Edit: I should have mentioned this but there is a possibility to use “static linking” sort of tools like Xenocode’s PostBuild.NET