【发布时间】: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会怎样?