【问题标题】:How do I create my procfile file for heroku?如何为 heroku 创建我的 procfile 文件?
【发布时间】:2017-07-01 21:56:14
【问题描述】:

我正在尝试将 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 heroku intellij-idea gradle procfile


    【解决方案1】:

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

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

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

    将使其在 Windows 上运行。

    如果部署在云中的应用程序(即 Unix)出现此错误,则 target/classes 目录中没有 com.x.y.Main 类。您可以通过运行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 命令启动应用程序。

    【讨论】:

    • 查看我更新的帖子。我更新了我的 procfile,但我仍然收到错误
    • @AbAppletic 您究竟是如何在本地或云端运行应用程序的,使用什么命令?能否提供target/classes中的文件列表?
    • heroku local web
    • 我在目标中没有classes 文件夹
    • 那就是问题所在,mvn clean install 应该在那里生成.class 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 2019-03-13
    • 2019-07-16
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多