Isn't software needed from programs to run?
Languages like C and C++ can be compiled to include all libraries they use statically (as part of the executable). This means that the executable will be able to run by itself. Of course, even in this case the executable is supported by the operating system, but this is "for free".

You are right that practical applications normally use dynamically linked libraries and even external data files, but programs arising in programming competitions are usually more low-key and can stand on their own.

The judges have a very practical reason in requiring that the executable be self-sufficient, namely it makes it much easier for them to run it. Java environments are not standard, take up a lot of space, and are time-consuming to install. In principle (and perhaps in practice) you could compile your Java code to Java bytecode and thence to an actual executable, and if you link the appropriate runtime libraries statically, you would get a standalone executable.