2016-06-18 21 views
0

我想用其他参数启动jar文件(Spring Boot应用程序)。通过服务(linux)以参数作为单个变量启动Java jar

当我开始用shell命令,它正常启动:

java -jar spring.boot.jar --parameter01="My Parameter Value 01" --parameter02="My Parameter Value 02" 

现在,我想所有的参数传递到一个bash shell中(以启动它的/etc/init.d内的服务)

java -jar spring.boot.jar $1 

($ 1等于值以上>> --parameter01 = “我的参数值01” --parameter02 = “我的参数值02”)

那么Spring应用程序不能识别值“我的参数值01“,但是 只有我的”。 我该怎么办?我试图逃避空间角色并引用角色,但没有任何工作。

+0

我会建议将变量分解为多个部分('SENDER_NAME'和'PORT'),但您的发布示例应该可以工作。你使用什么操作系统和shebang线? –

+0

@RuaTre请将你的问题重新解释一下,现在它几乎是不可理解的。 –

回答

0

一个简单的脚本用一个参数调用你的'java -jar spring.boot.jar',我们称之为/etc/init.d/run-spring-boot,确保'chmod + x/etc在执行前/init.d/run-spring-boot”:

#!/bin/bash 
echo java -jar spring.boot.jar $1 
java -jar spring.boot.jar $1 

调用脚本引用整个字符串的单一输入参数,并逃脱内引号:

/etc/init.d/run-spring-boot "--parameter01=\"My Parameter Value 01\" --parameter02=\"My Parameter Value 02\""