Запустить пример эха из Jshell [дубликат]
Sep 08 2020
Я читал такой пример аргументов командной строки:
public class Echo {
public static void main (String[] args) {
for (String s: args) {
System.out.println(s);
}
}
}
Он правильно работает из командной строки, как я могу запустить его из Jshell?
jshell> Echo.main testing
| created variable testing, however, it cannot be referenced until class main is declared
Он сообщает об ошибке, на которую не удалось сослаться.
Ответы
2 aioobe Sep 08 2020 at 15:51
Вы вызываете его как любой другой статический метод:
Echo.main(new String[] { "hello", "world" });
Полная сессия:
$ jshell
| Welcome to JShell -- Version 11.0.8
| For an introduction type: /help intro
jshell> public class Echo {
...> public static void main (String[] args) {
...> for (String s: args) {
...> System.out.println(s);
...> }
...> }
...> }
| created class Echo
jshell> Echo.main(new String[] { "hello", "world" });
hello
world
Обратите внимание, что вы можете объявить свой mainметод следующим образом:
public static void main(String... args) { ... }
Он двоично совместим с String[] argsсинтаксисом, но позволяет вызывать его следующим образом:
Echo.main("hello", "world");