我使用Spring Boot 1.4.1創建可執行的Unix JAR文件(根據指令here)。我正在使用自定義的.conf文件在運行時設置JAVA_OPTS
值。這一直工作正常,其內容如下:Spring Boot可執行文件JAVA_OPTS用空格替換
JAVA_OPTS="-Dspring.profiles.active=prod -Dflyway.validate-on-migrate=false -Djavax.net.ssl.trustStore=/var/myapp/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit"
我現在要改寫我已經在我的application.yml文件得到配置(這是嵌入在JAR內)的參數。問題是這個參數的值在它們中有空格。
我已經試過:
JAVA_OPTS="-Dmy.param=One Two -Dspring.profiles.active=prod -Dflyway.validate-on-migrate=false -Djavax.net.ssl.trustStore=/var/myapp/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit"
......還有......
JAVA_OPTS="-Dmy.param=One\ Two -Dspring.profiles.active=prod -Dflyway.validate-on-migrate=false -Djavax.net.ssl.trustStore=/var/myapp/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit"
......還有......
JAVA_OPTS=-Dmy.param=One\ Two -Dspring.profiles.active=prod -Dflyway.validate-on-migrate=false -Djavax.net.ssl.trustStore=/var/myapp/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit
... ..和。
JAVA_OPTS=""-Dmy.param=One\ Two" -Dspring.profiles.active=prod -Dflyway.validate-on-migrate=false -Djavax.net.ssl.trustStore=/var/myapp/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit"
但我得到的各種錯誤信息,如:
Error: Could not find or load main class Two
......或者......
/var/myapp/myapp.conf line 1: Two: command not found
我看着那已嵌入到了JAR文件的頂部裏面的代碼,它似乎是:
arguments=(-Dsun.misc.URLClassPath.disableJarChecking=true $JAVA_OPTS -jar $jarfile $RUN_ARGS "[email protected]")
...但我有麻煩工作如何轉變成一個JAVA_OPTS值的作品
空間(和報價)特別是在-D論點論據是令人難以置信的難以得到的權利與bash腳本,在某些情況下是不可能的。我建議將該配置放在環境變量或配置文件中。 –
你試過這個'JAVA_OPTS = -Dmy.param =「一個兩個」-D ..........' –
@LipingHuang從我最初設置的時候(沒有新的參數)整條線需要被引用,否則我得到'-Dflyway.validate-on-migrate = false:command not found' – Catchwa