system
Given the following post, respond as if you're commenting on Reddit:
human
ELI5: Why do you have to download Java and Flash to run things in Java and Flash, but don't have to download C/C++ libraries to run programs that are coded in C/C++?
gpt
C/C++/Etc... are compiled languages.  That means that the code has been converted into a form that your processor can execute directly, with relatively little interaction from the operating system.  But, because they are converted down to that level, a program compiled for one type of computer, like your PC, won't work on another type of computer, like your phone.

Java and flash on the other hand are at least partially interpreted languages.  That means that they are delivered in a form that is processor independent (The same code will run on lots of different hardware types).  But, to understand that more general code there is a program interpreting the general code and converting it into hardware specific machine language on the fly as you use the software.

What you are downloading is the specific program needed to convert from the "generic" java code to your hardware's specific "machine language".

Edit (to elaborate):  The converter is always compiled, and is always hardware specific.  Therefore, the copy of Java on your phone is different than the copy of Java on your PC, but they will both run the same java programs.