2016-05-12 3 views
1

スプリングブートコマンドラインからスペースを使ってparamを受け取る方法を教えてください。Springブート方法コマンドラインからスペースを使ってparam値を受け取る方法は?

@Value("${paramJson}") 
private String paramJson ; 

@Override 
public void run(String... arg0) throws Exception { 
    System.out.println(paramJson); 
} 

./target/spring-boot-foo-0.0.1-SNAPSHOT.jar --paramJson="{price: 30}" 

は出力が{price:

コマンドのparam値は、スペースを持っているのであれば、どのようにそれを正しく受信するには?

+2

作品をcustom launch scriptを使用して、問題を自分で修正しますot 1.3.5.RELEASE。問題を再現する完全で最小限の例を提供できますか? –

+0

@AndyWilkinsonを参照してください。https://github.com/zhugw/spring-boot-read-command-param – zhuguowei

+0

'java -jar'を実行するのではなく、完全に実行可能なjarファイルをビルドしていると思います。これは 'java -jar'で動作します。この問題は、起動スクリプトに含まれている必要があります。 –

答えて

0

スクリプトには、完全に実行可能なjarファイルにSpringブートが付加されるa bugがあります。このバグにより、引用符で囲まれた引数が誤って処理されます。この問題は、jarが直接実行された場合にのみ発生します。 init.dを介してサービスとして起動されている場合、引用符で囲まれた引数は正しく処理されます。

  1. java -jar
  2. は修正が含まれていますinit.dディレクトリサービス
  3. 待ち春用のブート1.3.6.RELEASEなどのアプリケーションをインストールし使用してアプリケーションを実行します。

    あなたはいくつかのオプションを持っています問題のために
  4. は春ボーと私のため
関連する問題