【问题标题】:Heroku java server crashHeroku java服务器崩溃
【发布时间】:2016-01-22 02:51:06
【问题描述】:

我搞砸了一个在 Eclipse 中运行良好的 java 项目,我想将它存储在 heroku 上。按照说明here。我更新了 pom 依赖项,推送了项目并获得了构建成功的指示,但是在尝试使用 heroku ps 命令时,我得到一个服务器崩溃错误,说它找不到我的主类。这是日志错误:

2015-10-22T17:32:32.303445+00:00 heroku[web.1]: Starting process with command `j
ava -XX:+UseCompressedOops -cp bin:target/dependency/* ServerMain`
2015-10-22T17:32:34.107670+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults
based on dyno size. Custom settings will override them.
2015-10-22T17:32:34.118434+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx38
4m -Xss512k -Dfile.encoding=UTF-8
2015-10-22T17:32:34.482566+00:00 app[web.1]: Error: Could not find or load main
class ServerMain
2015-10-22T17:32:35.596974+00:00 heroku[web.1]: State changed from starting to c
rashed
2015-10-22T17:32:35.582629+00:00 heroku[web.1]: Process exited with status 1

我的 Procfile 看起来像这样:web: java $JAVA_OPTS -cp bin:target/dependency/* ServerMain 我所有的 java 类都在 bin 文件夹中,ServerMain 文件包含一个 main 函数。任何想法我做错了什么?

【问题讨论】:

  • 你的ServerMain是否存在于根包中,还是应该是com.myapp.ServerMain(或其他)?
  • 是的,它在我的根包中
  • 从本地命令行运行 heroku run ls bin/ServerMain.class 会发生什么?
  • 它说没有这样的文件或目录
  • 这就是问题所在。您希望这些类文件如何到达那里?如果 maven 正在构建您的应用程序,它会期望类文件位于 target/classes。如果你运行heroku run ls target/classes/ServerMain.class 会怎样?

标签: java eclipse maven heroku


【解决方案1】:

(重复 cmets 中的内容,以便将其标记为已回答)

确保您使用 Maven 编译类,然后将 bin 更改为 target/classes 以便您的 Procfile 包含以下内容:

web: java $JAVA_OPTS -cp target/classes:target/dependency/* ServerMain

bin 目录中的类可能是 Eclipse 生成的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-12
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多