Если ваша программа упакована как исполняемый файл jar, у вас должна быть отдельная папка, в которую помещаются другие зависимости jar, а затем укажите эту папку как находящуюся в пути к классам при запуске вашей программы:
java -classpath c:\path\to\dir_with_jars -jar myExecutableJar.jar p1.MainClass
Также: если вы хотите использовать неортодоксальный метод упаковки ваших jar-зависимостей в jar-файл, вы должны поместить эти зависимости в ROOT вашего исполняемого jar-файла, а не в какую-либо папку (lib или иным образом).Таким образом, они будут эффективно находиться в корне вашего пути к классам, поэтому, если вы запустите свой jar как:
java -cp:. -jar myJar.jar
, он должен работать
Примечание: этот ответ содержит ошибки, пожалуйста, посмотритеприкрепленные комментарии ниже.Идея состоит в том, что на самом деле есть инструменты, которые позволяют вам упаковать ваши jar-зависимости внутри jar-файла (как внутренние jar-файлы), но это больше не будет работать как обычный исполняемый jar-файл, который вы можете запустить с загрузчиком классов JDK по умолчанию.Вместо этого вам нужен специальный загруженный класс, который будет учитывать внутренние фляги.Инструменты, которые предлагают эту функциональность, обычно автоматически добавляют необходимый специальный загруженный класс и обновляют манифест jar, чтобы использовать его.Извините за ошибку.