Ich habe diesen benutzerdefinierten Befehl:Benutzerdefinierte Befehl mit Server yml Befehl in Dropwizard
public final class ArgsCommand extends Command {
private String foobar;
private String baz;
public ArgsCommand() {
super("args", "sets additional application arguments");
}
public String getFoobar() {
return foobar;
}
public String getBaz() {
return baz;
}
@Override
public void configure(Subparser subparser) {
subparser.addArgument("-foobar")
.dest("foobar")
.type(String.class)
.required(true)
.help("the foobar value for the application");
subparser.addArgument("-baz")
.dest("baz")
.type(String.class)
.required(true)
.help("the baz value for the application");
}
@Override
public void run(Bootstrap<?> bootstrap, Namespace namespace) throws Exception {
foobar = namespace.getString("foobar");
baz = namespace.getString("baz");
if (foobar == null || foobar.length() == 0
|| baz == null || baz.length() == 0) {
throw new IllegalArgumentException(
"One or more required command-line arguments is missing!");
}
// do something with the additional arguments
}
}
... in der Anwendung wie folgt festgelegt:
@Override
public void initialize(final Bootstrap<FoobarBazConfiguration> bootstrap) {
bootstrap.addCommand(new ArgsCommand());
}
... und von der Kommando- ausgeführt Zeile wie folgt:
java -jar <jar file> args -foobar asdf -baz 123
ich würde lik e, dies zu tun (nicht funktioniert):
java -jar <jar file> server <yml file> args -foobar asdf -baz 123
Muss ich jetzt einen benutzerdefinierten Befehl Argument die .yml-Datei übergeben und zu handhaben?