Передача аргументов строки 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 и вызывать их. Узнайте больше на этот вопрос.