Передача аргументов строки cmd определенному методу

В Java вы можете передать аргументы строки cmd main() метод во время запуска программы.

Я хотел бы передать строковые аргументы cmd конкретному методу, который я вызываю из скрипта напрямую. Мне не повезло просто войти в них, как я бы для main(),

Пример:

public class Test {
    public static void main(String[] args) { // args is cmd line input
        // do stuff with args
    }
}

Вы бы сделали: ~]# java Test cmdlineinput

Мне нужно сделать:

public class Test {
    public void someMethod(String input) {
        // do stuff with input
    }
}

Я хочу делать: ~]# java Test.someMethod cmdlineinput

Это возможно и как так?

2 ответа

Решение

Ваша программа нуждается в основном методе для запуска, и вы должны передавать аргументы командной строки прямо или косвенно из основного метода туда, куда вы хотите, чтобы он шел. Я не знаю другого решения.

т.е.

public static void main(String[] args)  {
  Test test = new Test();
  test.someMethod(args);
}

По соглашению, JVM будет искать main и называть это. Вы не можете вызывать методы напрямую из командной строки. Однако, если вы используете REPL для JVM, такой как Groovy и groovysh Вы можете вызывать методы из оболочки. Это может или не может работать для вашего случая использования. Однако технически это позволит вам по отдельности вызывать методы Java и вызывать их. Узнайте больше на этот вопрос.

Другие вопросы по тегам