Jar запускается с JVM 8, который скомпилирован с java 6. Может ли этот jar загрузить еще один в качестве "библиотеки"/плагина, который скомпилирован с java 8, который имеет зависимость от первой банки?
Конечно, это возможно. Вы можете смешивать банки, скомпилированные в разных версиях Java.
Также обратите внимание, что при разговоре о используемой версии Java существует несколько вещей. Один из них - это библиотека классов Java, с которой вы компилируете свой код. Это определяет API, которые вы можете использовать в своем коде.
Во-вторых, это версия java-байт-кода. Вы можете поручить Java 8 скомпилировать код как бинарный совместимый Java 6. Это не означает, что ваш код будет выполняться против Java 6. Если вы используете вызовы/классы, добавленные в Java 7 или 8, вы столкнетесь с проблемами во время выполнения.
Эти два являются наиболее важными аспектами, когда речь идет о совместимости Java. Совместимость с Google для Java или совместимость с исходным кодом Java и бинарной совместимостью для получения дополнительной информации по этому вопросу.