Получение аргументов cli через отражение в java - PullRequest
0 голосов
/ 22 июля 2011

Есть ли способ получить доступ к аргументам в массиве args, кроме как к параметрам main?Я работаю с Disgruntled Bomb в java, и я хочу иметь возможность получить аргументы cli и вызывать с ними основную функцию в случайном порядке или что-то в этом роде.

public class Bomb{

  static {
    main(new String[]{"arg"});
    System.exit(0);
  }

  public static void main(String[] args){
    for(int i = 0; i < args.length; i++){
      System.out.printf("arg %d: %s%n",i,args[i]);
    }
  }
}

Ответы [ 3 ]

4 голосов
/ 22 июля 2011

В Sun JDK вы можете получить доступ к свойству sun.java.command:

String args = System.getProperty("sun.java.command");

Однако вы должны разделить аргументы самостоятельно, и он также не очень переносим для других JVM.

1 голос
/ 22 июля 2011

Я не знаю, если это то, что вы ищете, но Apache CLI (интерфейс командной строки) позволяет передавать аргументы "старым" способом Unix

-nameOfArgument1 valueOfArgument1 -nameOfArgument2 valueOfArgument2....
0 голосов
/ 22 июля 2011

Просто реализуйте метод main в другом классе и используйте его для вызова оригинального main с необходимой вам рандомизацией?Или звонок должен быть точно таким же?В таком случае, как бы вы остановили звонок самому себе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...