Java classpath separator зависит от платформы, ;
для Windows и :
для Unix.
Если вы пытаетесь запустить heroku local
в Windows, ваша команда завершится неудачно с сообщением, которое вы отправили. Замена его:
web: java -cp target/classes/;target/dependency/* com.x.y.Main
сделает его работать на Windows.
Если вы получили эту ошибку с приложением, развернутым в облаке (которое является Unix), то в каталоге target/classes
нет . Вы можете проверить это, выполнив heroku run bash
, а затем ls -lR
и проверив макет каталога/файлов на сервере.
Если вы запустите на Windows, запустите mvn clean install
, чтобы скомпилировать источники в каталог target/classes
.
Для основанных Gradle проектов, которые вы должны были бы настроить путь к классам, так как он использует другую раскладку (build/classes
) или .jar файл в build/libs
, see the guide for the details:
web: java -jar build/libs/myprojectname-1.0-SNAPSHOT.jar
Чтобы заставить его работать в облаке и на Windows без изменения Procfile каждый раз, создайте Procfile.windows
с web: java -cp target/classes/;target/dependency/* com.x.y.Main
и запустите приложение, используя команду heroku local web -f Procfile.windows
локально.
Отметьте обновленное сообщение. Я обновил свой файл procfile, но я все еще получаю сообщение об ошибке –
@AbAppletic Как именно вы запускаете приложение, локально или в облаке, какая команда используется? Можете ли вы предоставить список файлов в 'target/classes'? – CrazyCoder
'heroku local web' –