Java 环境变量在弹性Beanstalk程序文件中不可用

Java 环境变量在弹性Beanstalk程序文件中不可用,java,amazon-web-services,amazon-elastic-beanstalk,procfile,Java,Amazon Web Services,Amazon Elastic Beanstalk,Procfile,我正试图通过Procfile使用环境变量配置elastic beanstalk java应用程序,如下所示: web: ./bin/myservice -Dhttp.port=$PORT 端口环境变量通过我的beanstalk环境的“软件配置”屏幕中的AWS ui设置 但是,日志表明,$PORT未被插值: Exception in thread "main" java.lang.ExceptionInInitializerError at com.whatever.services.m

我正试图通过Procfile使用环境变量配置elastic beanstalk java应用程序,如下所示:

web: ./bin/myservice -Dhttp.port=$PORT
端口
环境变量通过我的beanstalk环境的“软件配置”屏幕中的AWS ui设置

但是,日志表明,
$PORT
未被插值:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at com.whatever.services.myservice.Main.main(Main.scala)
Caused by: java.lang.NumberFormatException: For input string: "$PORT"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:569)
向我的应用程序传递选项的正确方法是什么


编辑1:这似乎是一个与sbt native packager插件相关的问题,我使用该插件创建项目的可分发zip存档。它生成的bin/myservice文件正在逐字解释$PORT并将其传递给应用程序。

尝试从
Procfile
中删除
-Dhttp.PORT=$PORT

在“软件配置”的ui中,尝试将变量
JAVA\u OPTS
设置为
-Dhttp.port=9000
(用您的nginx代理使用的任何端口替换9000——我相信5000是默认端口)


我在beanstalk UI中没有看到“JVM命令行选项”。您使用的是Java SE容器类型@novon吗?是的,这就是我选择的。对不起——这曾经是一个选项——它仍然出现在我以前的应用程序中。我刚刚创造了一个新环境,但它已经不存在了。看看新方法是什么。啊——好的。您可以通过软件配置来设置,但请尝试以下键=>val:JAVA_OPTS:“-Dhttp.port=9000”(用任何值替换9000)。如果这有效,我将更新答案以反映最新的机制。我正尝试做同样的事情,在我的proc文件中使用一个变量。你运气好吗?