在
application.properties
我们有一行
spring.profiles.active=LOCALHOST
在
application-DEV.properties
,我们有一行
spring.profiles.active=DEV,dbcache,metrics,AWS
。使用
运行应用程序时java -jar app.war -Dspring.profiles.active=DEV
控制台输出显示
The following profiles are active: LOCALHOST
,即
-Dspring.profiles.active=DEV
参数不受尊重,应用仍然使用默认的LOCALHOST配置文件。
答案 0 :(得分:2)
我的java [ options ] -jar file.jar [ argument ... ]
命令的手册页说:
-jar
也就是说,JVM选项(例如属性设置)必须在 main
(或主类)之前。之后的任何内容都被视为传递给import java.util.Arrays;
class Sort {
public static <K extends Comparable<K>,V> void sort(K[] k, V[]v) {
class Kv implements Comparable<Kv> {
K k;
V v;
public Kv(K k, V v) {
this.k = k;
this.v = v;
}
public int compareTo(Kv other) {
return k.compareTo(other.k);
}
}
if (k.length != v.length) {
throw new Error("not same length");
}
Kv[] kv = new Kv[k.length];
for (int i=0; i<k.length; i++) {
kv[i] = new Kv(k[i], v[i]);
}
Arrays.sort(kv);
for (int i=0; i<k.length; i++) {
k[i] = kv[i].k;
v[i] = kv[i].v;
}
}
public static void main(String[] args) {
Character[] v = {'a', 'b', 'c'};
Integer[] k1 = {5, 3, 2};
Sort.sort(k1, v);
for(int i=0; i<k1.length; i++) {
System.out.println(v[i]);
}
}
}
的参数。
这实际上有一个目的,而不仅仅是迂腐 - 你可能有一个工具可以启动一个子JVM(例如,Maven可以这样做),并希望提供在那里传递的参数。
答案 1 :(得分:0)
以防万一有人遇到与我相同的问题,请确保将您的主类args传递给spring。希望对您有所帮助。
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}