I personaly use Launch4j (through maven with the maven-launch4j-plugin to be even more precise), and I implement the system tray management from within my application... (See http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/systemtray/).