title: How do you remotely update Java applications?
body: <p>We've got a Java server application that runs on a number of computers, all connected to the Internet, some behind firewalls. We need to remotely update the JAR files and startup scripts from a central site, with no noticeable interruption to the app itself.</p>
  
  <p>The process has to be unattended and foolproof (i.e. we can't afford to break the app due to untimely internet outages).</p>
  
  <p>In the past we've used a variety of external scripts and utilities to handle similar tasks, but because they have their own dependencies, the result is harder to maintain and less portable. Before making something new, I want to get some input from the community.</p>
  
  <p>Has anyone found a good solution for this already? Got any ideas or suggestions?</p>
  
  <p><em>Just to clarify: This app is a server, but not for web applications (no webapp containers or WAR files here). It's just an autonomous Java program.</em></p>