java如何为heroku创建procfile文件?
我正在尝试将Heroku与Java结合使用,我有这个目录结构,我正在使用IntelliJ:
target
com
x
y
Main.java
在proc文件中:
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
# 1 楼答案
Java类路径分隔符依赖于平台,Windows为
;
,Unix为:
如果您试图在Windows上运行
heroku local
,您的命令将失败,并显示您发布的消息。将其替换为:web: java -cp target/classes/;target/dependency/* com.x.y.Main
将使其在Windows上运行
如果在部署到云中的应用程序(即Unix)中出现此错误,则
com.x.y.Main
目录中没有target/classes
类。您可以通过运行heroku run bash
后跟ls -lR
并检查服务器上的目录/文件布局来验证这一点如果在Windows上运行,请确保运行
mvn clean install
将源代码编译到target/classes
目录中对于基于Gradle的项目,您需要调整类路径,因为它使用不同的布局(
build/classes
)或build/libs
,see the guide for the details中的jar文件:web: java -jar build/libs/myprojectname-1.0-SNAPSHOT.jar
要使其在云端和Windows上工作,而不必每次更改Procfile,请使用
web: java -cp target/classes/;target/dependency/* com.x.y.Main
创建Procfile.windows
,并在本地使用heroku local web -f Procfile.windows
命令启动应用程序