有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 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/libssee 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命令启动应用程序