Getdown (yes, it's the funky stuff) is a system for deploying Java applications to end-usercomputers, as well as keeping those applications up to date.
It was designed as a replacement for Java Web Startdue to limitations in Java Web Start's architecture which are outlined in therationale section.
Note: Getdown was designed in 2004 as an alternative to Java Web Start, because of design choicesmade by JWS that were problematic to the use cases its authors had. It is not a drop-inreplacement for JWS, aimed to help the developers left in the lurch by the deprecation of JWS inJava 9. It may still be a viable alternative for developers looking to replace JWS, but don'texpect to find feature parity with JWS.
How do I use it?A tutorial and more detailed specification are available from the Documentation page. Questionscan be posted to the OOO Libs Google group.
Note that because one can not rely on users having a JRE installed, you must create a custominstaller for each platform that you plan to support (Windows, macOS, Linux) that installs a JRE,the Getdown launcher jar file, a stub configuration file that identifies the URL at which your realapp manifest is hosted, and whatever the appropiate "desktop integration" is that provides an iconthe user can click on. We have some details on theinstallers documentation page, though itis unfortunately not very detailed.
How does it work?The main design and operation of Getdown is detailed on thedesign page. You can also browse thejavadoc documentation and source code if you're interested in implementation details.
Where can I see it in action?Getdown was originally written by developers at OOO for the deployment of their Java-basedmassively multiplayer games. Try out any of the following games to see it in action:
Puzzle Pirates - OOOSpiral Knights - OOOGetdown is implemented in Java, and is designed to deploy and update JVM-based applications. Whileit would be technically feasible to use Getdown to deploy non-JVM-based applications, it is notcurrently supported and it is unlikely that the overhead of bundling a JVM just to run Getdownwould be worth it if the JVM were not also being used to run the target application.
Release notesSee CHANGELOG.md for release notes.
Obtaining GetdownGetdown will likely need to be integrated into your build. We have separate instructions forbuild integration. You can also download the individual jar files from Maven Central if needed.Getdown is comprised of three Maven artifacts (jar files), though you probably only need the firstone:
getdown-launchercontains minified (via Proguard) code that you actually run to update and launch your app. Italso contains the tools needed to build a Getdown app distribution.
getdown-core contains thecore logic for downloading, verifying, patching and launching an app as well as the core logicfor creating an app distribution. It does not contain any user interface code. You would onlyuse this artifact if you were planning to integrate Getdown directly into your app.
getdown-ant contains an Anttask for building a Getdown app distribution. See the build integration instructions fordetails.
You can also:
Check out the code and build it yourself.Browse the source code online.View the javadoc documentation online.JVM Version RequirementsGetdown version 1.8.x requires Java 7 VM or newer.Getdown version 1.7.x requires Java 7 VM or newer.Getdown version 1.6.x requires Java 6 VM or newer.Getdown version 1.5 and earlier requires Java 5 VM or newer.Migrating from Getdown 1.7 to Getdown 1.8See this document on thechanges needed to migrate from Getdown 1.7 to 1.8.
BuildingGetdown is built with Maven in the standard ways. Invoke the following commands, for fun andprofit:
% mvn compile # builds the classes% mvn test # builds and runs the unit tests% mvn package # builds and creates jar file% mvn install # builds, jars and installs in your local Maven repositoryDiscussionFeel free to pop over to the OOO Libs Google Group to ask questions and get (and give) answers.