There is no such a thing as compile time libraries vs. runtime libraries
Perhaps your mixing some concepts.
In Java the libraries to be used are statically validated at compile time and also validated at runtime.
For instance if you want to use IterableMap
specified in the Apache Collections library. The compiler validates "at compile time" you are invoking a method that exist in that class.
But the compiler doesn't link or do much anything with that library, you still need it at runtime. So, when your code executes, the java runtime, search for that class again, and invoke the method the compiler verified existed.
And that what there is.