Java platform itself has basically all you need to make demos without additional worries about additional libraries and their availability. A few years ago the situation wasn’t yet that easy, as quality sound output was often done with platform specific extensions and there was no native 3D graphics support. Situation has improved and the 2D graphics capabilities have been enhanced while native Java 3D API has also been introduced. Also OpenGL bindings are becoming a standard part of Java, which will probably be the best option to use.
One big advantage for Java is that the native binary package format is jar files, which are basically zip files with some metadata in an enclosed manifest. The jar files can be compressed, so the native format itself is applicable for small executables by default and there is no need to include executable decompression stub or code.
For more information read: