如何为 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
命令启动应用程序。
我正在尝试将 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
命令启动应用程序。