Добро пожаловать в StackOverflow!
Когда вы компилируете свою программу с помощью Maven (который на самом деле не компилятор, а менеджер пакетов, который также может вызвать компилятор Java за кулисами), Maven берет на себя загрузку и управление зависимостями, которые использует ваша программа, в данном случае это Jasypt.
Когда вы затем пытаетесь запустить программу с обычным java
, информация о зависимостях, необходимых для запуска вашей программы, теряется, просто потому что Maven больше не является частью игры. Поэтому вы должны дать во время выполнения Java подсказку, где найти зависимость Jasypt, так же, как вы делали с вашей демонстрационной флягой. Во время процесса компиляции Maven сохранял Jarspt jar на вашем диске в папке с именем local Maven repository .
Теперь вы можете просто добавить путь к этому jar в classpath, и все будет работать :
java -cp target/demo-0.0.1-SNAPSHOT.jar:<path to your Maven repository>/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar com.jasypt.encryption.demo.BasicDemo
(Версия библиотеки Jasypt может отличаться на вашем компьютере.)
Если у вас много зависимостей, будет сложно добавить их все вручную в путь к классам. Maven также может позаботиться об этой задаче с помощью плагина Exe c . Вместо запуска java
напрямую позвольте Maven выполнить сантехнику за вас:
mvn exec:java -Dexec.mainClass="com.jasypt.encryption.demo.BasicDemo"
Вы также можете проверить эту тему для получения более подробной информации об этом плагине и его параметрах