I have various Java Swing applications that are used by multiple users. My deployment strategy is to locate the .jar file on a network share, and users create shortcuts to that file. When the user launches an application, the file is copied to their machine and executed locally. This method allows for a single copy of the code and easy updating.
The problem is that I can't update the file on the network share if any user is using the application at that time.
I can't use Web Start because I don't have access to a cert for signing the jar.
My current workaround is a separate application that copies the desired app to the user's local machine, launches the application, and then the launcher exits. There is a several second delay from when the launcher app exits and the user's app becomes visible.
Can anyone suggest a better deployment method where I can easily update a central copy of the application, one where Windows XP won't maintain a lock on the file?
Update: The JSmooth method solves the essential issues. The .exe created by JSmooth is locked while in use, but the .jar files containing the application's functionality can be updated.