如何为 heroku 创建我的 procfile 文件?

How do I create my procfile file for heroku?

我正在尝试将 Heroku 与 Java 一起使用,我有这个目录结构并且我正在使用 IntelliJ:

target
  com
    x
     y
      Main.java

在过程文件中:

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.

Java class路径分隔符取决于平台,; 用于 Windows 和 : 用于 Unix。

如果您在 Windows 上尝试 运行 heroku local,您的命令将失败,并显示您发布的消息。替换为:

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

将在 Windows 上达到 运行。

如果部署在云(Unix)中的应用程序出现此错误,则 target/classes 目录中没有 com.x.y.Main class。您可以通过 运行ning heroku run bash 后跟 ls -lR 并检查服务器上的 directory/files 布局来验证这一点。

如果您在 Windows 上 运行 确保 运行 mvn clean install 将源代码编译到 target/classes 目录中。

对于基于 Gradle 的项目,您需要调整 class 路径,因为它使用不同的布局 (build/classes) 或 build/libs 中的 jar 文件,see the guide for the details:

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 命令启动应用程序。