工头找不到$ JAVA_OPTS

时间:2014-09-07 18:53:18

标签: java heroku windows-7-x64 foreman

我在Heroku的下一个教程中有一个错误,特别是在这部分

[https://devcenter.heroku.com/articles/getting-started-with-java#run-the-app-locally][1]

如果我执行该指令,那么foreman会抛出以下错误:

错误:找不到java类$ JAVA_OPTS

我已经声明了一个这样的env变量:

Name variable : JAVA_OPTS

Variable value: -Xms256m -Xmx512m

领班试图执行的Proc文件具有以下内容:

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

我对发生的事情一无所知。

注意:我已经检查过其他一些问题

Running java with JAVA_OPTS env variable

Foreman terminates immediately

foreman can't find java

希望有人知道发生了什么。

编辑:我在下面回答了我自己的问题

3 个答案:

答案 0 :(得分:3)

我怀疑你在Windows上运行。如果是这样,那么你将不得不像%JAVA_OPTS%那样引用JAVA_OPTS var。但是Heroku仍然需要* nix样式($JAVA_OPTS),因此我建议您在Procfile.win旁边创建一个Procfile,其中包含以下内容:

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

然后运行此操作以在本地启动您的应用程序:

$ foreman start --procfile=Procfile.win

答案 1 :(得分:3)

这就是我为解决这个问题所做的:

似乎heroku网站上的文档并不清楚您使用的是哪种操作系统。但后来我在下面的链接中找到了答案:

Heroku Deploy your Java app locally

原始的Proc文件脚本是这样的:

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

我修改了它,如下所示:

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

正如Heroku文档所述。

这解决了问题,我能够在本地运行我的应用程序

答案 2 :(得分:1)

如果你正在使用'nix, export JAVA_OPTS 在运行期望它的脚本之前。