无法使用RJB gem将应用程序部署到Heroku

Pau*_*aul 5 heroku java-home rjb

我已经设置了JAVA_HOME变量

heroku config:add JAVA_HOME=/usr/lib/jvm/java-6-openjdk
Run Code Online (Sandbox Code Playgroud)

检查heroku配置是否显示带有值的变量,然后按下:

git push heroku master
Run Code Online (Sandbox Code Playgroud)

仍然得到

JAVA_HOME is not set
Run Code Online (Sandbox Code Playgroud)

Bundler正在安装RJB gem时出错.

我可以成功地将相同的源部署到另一个Heroku应用程序,并且所有环境变量都是相同的.

怎么了?

小智 8

我有同样的问题,如果其他人想知道,这就是Heroku告诉我的:

默认情况下,编译应用程序时,配置变量不可用 - 仅在运行时.

您可以通过确保安装最新的heroku gem来更改此设置,然后启用user_env_compile lab标志

$ heroku labs:启用user-env-compile

这将使gem安装时可以使用JAVA_HOME,希望能让你解决这个问题.


Rah*_*ari 5

首先通过使用找到JAVA_HOME PATH,

heroku run 'which java |xargs  readlink -f  | sed "s:bin/java::"'
Run Code Online (Sandbox Code Playgroud)

它会回报你,

usr/lib/jvm/java-6-openjdk/jre
Run Code Online (Sandbox Code Playgroud)

现在使用它来了解heroku上的JAVA_HOME路径.现在在heroku和Gemfile中设置JAVA_HOME路径

在heroku cli上:

heroku config:add JAVA_HOME=/usr/lib/jvm/java-6-openjdk
Run Code Online (Sandbox Code Playgroud)

在Gemfile上面:

java_home = '/usr/lib/jvm/java-6-openjdk'
ENV['JAVA_HOME'] = java_home if Dir.exist?(java_home)
Run Code Online (Sandbox Code Playgroud)