工头找不到 $JAVA_OPTS

Posted

技术标签:

【中文标题】工头找不到 $JAVA_OPTS【英文标题】:Foreman cannot find $JAVA_OPTS 【发布时间】:2014-11-01 01:06:12 【问题描述】:

我在 Heroku 的下一个教程中遇到了一个错误

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

如果我执行那个指令工头会抛出以下错误:

错误:找不到 java 类 $JAVA_OPTS

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

$ foreman start --procfile=Procfile.win

【讨论】:

这对我找到正确的解决方案有很大帮助,作为记录,我要添加一个新答案,但我会将其标记为有效。【参考方案2】:

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

似乎 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 文档所述。

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

【讨论】:

分号在 Windows 中很重要!这值得成为这个问题的正确答案。【参考方案3】:

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

【讨论】:

对不起,您有链接或参考资料吗?顺便说一句,我使用的是 Windows 7。

以上是关于工头找不到 $JAVA_OPTS的主要内容,如果未能解决你的问题,请参考以下文章

装修要找大品牌还是游击队,还是包工头?

Tomcat优化

tomcat的调优管理

找不到localhostweb页面

java为啥每次都是找不到文件。找不到文件?

java 枚举 找不到符号