我有一个使用jvm变量的Java应用程序。通常,我使用类似命令设置它
APP_HOME="-DAPP_HOME=$CATALINA_HOME/myapp"
为了指向Tomcat上我的应用程序结构中的正确文件夹。
现在我正在尝试将我的应用程序部署到MicroCloud虚拟机。部署后,我使用该命令
vmc env-add myapp APP_HOME="-DAPP_HOME=$HOME/myapp
设置我的变量。但问题是变量被设置为shell变量而不是JVM变量。当我使用System.getenv();
时,我可以看到我的变量已设置,但是当我使用System.getProperty("APP_HOME")
时,变量为null。
任何人都有这方面的经验,并可以建议做什么将其设置为CF上的JVM变量?
P.S。 我阅读了有关CloudFoundry Q& A的所有现有主题以及此处的stackoverflow,但我没有看到这个问题的答案......
提前谢谢!
答案 0 :(得分:2)
怎么样?
vmc env-add myapp JAVA_OPTS="-DAPP_HOME=$HOME/myapp"
(即将-DAPP_HOME作为JVM的属性传递)
但是,为什么要尝试这样做 - 为什么仅使用getenv获取值而不是寻找系统属性这是一个坏主意?