Between the library and the framework, the difference is small, but fundamental. If your code simply uses the functions of the module, then this module is most likely a library. But if a module forces you to write code the way it wants and calls it, then this is already a framework. But the actual module is a set of source files (sometimes already compiled).
runtime is part of the code that exists in the executable file (or in separate so / dll) and provides all sorts of "convenience". For example, find out the type of object or make the same virtual calls. It is usually added by the compiler and the normal user may not even be aware of it. Also, the word runtime is the time when the program is executed. What exactly is meant is to get past the context.
runtime libraries are libraries that are used while the program is running. Sometimes libraries come in two forms - for development and for normal work (the latter are often optimized and have been discarded from them). A good example is bpl files delphi. For the same component there can be libraries that contain all sorts of tools for the IDE, but there are ones that are only for the operation of the code.
JRE is not a framework, it is a runtime library. Although on the other hand it is a bytecode framework. But since only special deviants squeak on bytecode, this is not a framework programmer for an ordinary programmer. But the whole java is one continuous framework :)