2017-02-13 14 views
2

Я пытаюсь использовать Heroku с Java, у меня есть эта структура каталогов, и я использую IntelliJ:Как создать файл procfile для heroku?

target 
    com 
    x 
    y 
     Main.java 

в PROCFILE:

web: java -cp target/classes/;target/dependency/* com.x.y.Main 

Когда я пытаюсь heroku local web я получаю "Could not find or load main class com.x.y.Main "

Однако, он есть. Я использую Windows.

ответ

2

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 локально.

+0

Отметьте обновленное сообщение. Я обновил свой файл procfile, но я все еще получаю сообщение об ошибке –

+0

@AbAppletic Как именно вы запускаете приложение, локально или в облаке, какая команда используется? Можете ли вы предоставить список файлов в 'target/classes'? – CrazyCoder

+0

'heroku local web' –

 Смежные вопросы

  • Нет связанных вопросов^_^