【问题标题】:Java Heroku application run locally with foremanJava Heroku 应用程序使用工头在本地运行
【发布时间】:2014-11-23 19:46:10
【问题描述】:

我正在关注“Heroku 上的 Java 入门”指南,网址为 https://devcenter.heroku.com/articles/getting-started-with-java 我按照这些步骤成功部署并执行从 GitHub 下载的应用程序。 当我尝试使用命令在 Windows XP 上本地执行它时

foreman start web

我得到错误:

    web.1  | started with pid 3388
    web.1  | Error: Could not find or load main class Main
    web.1  | exited with code 1
    system | sending SIGKILL to all processes

我的 Procfile 是:

web:    java %JAVA_OPTS% -cp target\classes:target\dependency\* Main

>echo %JAVA_OPTS%
-Xms256m -Xmx512m

谁能建议我如何解决?

【问题讨论】:

  • 显示你的项目结构..!
  • 只是Main文件,是从GitHub下载的“从头开始”的项目

标签: java heroku foreman


【解决方案1】:

引号和分号

web: java %JAVA_OPTS% -cp target\classes;"target\dependency\*"  Main

【讨论】:

  • 您是否正在编辑您的 Procfile 使其看起来像上面那样?如果你有一个单独的 Windows 文件,就像我一样,你需要在启动工头时指定它。 '工头启动网络 --procfile=Procfile.win'
  • web: java -Xms256m -Xmx512m -cp target\classes:"target\dependency\*" Main 这是我的 Procfile.win,我使用 foreman start web --procfile=Procfile.win 运行它,我在原始问题中遇到了同样的错误。
  • 尝试把冒号改成半冒号
  • 注意,如果没有设置%JAVA_HOME%,这可能会失败(因为它认为“%JAVA_HOME%”是类名。
【解决方案2】:

我在浏览https://devcenter.heroku.com/articles/getting-started-with-java 教程时遇到了这个问题。

在修改了其中一些答案后,我发现https://devcenter.heroku.com/articles/getting-started-with-java#define-a-procfile 的第六步给出了答案。

当您看到使用 foreman 运行应用程序的说明时,请附加一个额外的 -f Procfile.windows 标志,以确保获取您的 Windows 特定 Procfile。例如:foreman start web -f Procfile.windows

一旦我切换到工头 start web -f Procfile.windows 命令,一切都很顺利。

【讨论】:

    【解决方案3】:

    从 heroku 服务器下载的 java-getting-stared 应用程序存在同样的问题。改为“;”适用于 Windows。在heroku linux服务器上仍然需要“:”。

    【讨论】:

      猜你喜欢
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 2020-02-16
      • 2020-08-30
      • 1970-01-01
      • 2014-09-18
      • 2021-05-14
      • 2012-01-28
      相关资源
      最近更新 更多