Don Park has noticed an interesting issue with regards to firewalls and Java:
One of the nice features in XP SP2 Firewall is that when an application tries to access the network, it opens a dialog asking if the application should be granted network access and remembers the choice user makes. This is great for normal applications. Unfortunately, Java applications all fall under the hosting application name (java.exe and javaw.exe) so network access can not be given to some Java applications and not others.
Now, this is a problem for many VM based languages, unless you can create a platform executable. There are certainly tools for doing that in Java, although it doesn't sound like many people deploy Java applications that way. In VisualWorks Smalltalk, creating a Windows executable is fairly simple (have a look at the documentation in the packaging/win directory) - I do that for BottomFeeder. In general, this is something that developers of VM based systems are going to have to deal with.