Java выбрать в консоли какую метод запустить
Перейти к содержимому

Java выбрать в консоли какую метод запустить

  • автор:

Вывод и ввод данных в консоль Java

Консоль (console) в Java обеспечивает простое и удобное взаимодействия с пользователем. С помощью консоли можно выводить какую-нибудь информацию либо, напротив, используя консоль, считывать данные. В этой статье будет рассказано о том, как осуществляется ввод и вывод данных в консоли Java.

Чтобы обеспечивать взаимодействие с консолью, в языке программирования Java используют класс System.

Вывод на консоль в Java

Чтобы создать потока вывода в вышеупомянутый класс System, вам понадобится специальный объект out. В нём определен метод println, обеспечивающий вывод значения на консоль и перевод курсора консоли на другую строку.

Рассмотрим практический пример с Hello world:

 
public class Main < public static void main(String[] args) < System.out.println("Привет, мир!"); System.out.println("Пока, мир. "); >>

Что здесь происходит? В метод println осуществляется передача значения (в нашем случае это строка), которое пользователь желает вывести в консоль Java. Консольный вывод данных в Джава будет следующий:

 
Привет, мир! Пока, мир.

Выполнять перевод строки не обязательно. Если необходимость в этом отсутствует, применяют метод System.out.print() . Он аналогичен println, но перевод каретки на следующую строку не выполняется.

 
public class Main < public static void main(String[] args) < System.out.print("Привет, мир!"); System.out.print("Пока, мир. "); >>

Вывод в консоли Java:

 
Привет, мир!Пока, мир.

Однако никто не мешает, используя System.out.print, всё же выполнить перенос на следующую строку. Как вариант — использование \n:

 
System.out.print("Привет, мир! \n");

Также есть возможность подставить в строку Ява данные, которые объявлены в переменных. Вот, как это реализуется:

 
public class Main < public static void main(String[] args) < int i = 10; int y = 99; System.out.println("i=" + i + "; y=" + y); >>

В консоли увидим:

 
i=10; y=99

Ещё в Java существует функция, предназначенная для форматирования вывода в консоли, — System.out.printf() . При использовании со спецификаторами, она позволяет добиться нужного формата вывода.

Спецификаторы: • %d — для вывода в консоль целочисленных значений; • %x — для 16-ричных чисел; • %f — выводятся числа с плавающей точкой; • %e — для чисел в экспоненциальной форме (1.3e+01); • %c — вывод в консоль одиночного символа; • %s — вывод в консоль строковых значений.

Рассмотрим, как это функционирует на практике:

 
public class Main < public static void main(String[] args) < String name = "Bob"; int age = 40; float height = 1.8f; System.out.printf("Name: %s Age: %d Height: %.2f \n", name, age, height); >>

Когда осуществляется вывод в консоль Java значений с плавающей точкой, есть возможность задать количество знаков после запятой. Спецификатор %.2f (точнее, «.2») определяет, что будет 2 знака после запятой. Вывод в консоль Java будет следующим:

 
Name: Bob Age: 40 Height: 1.80

Ввод с консоли Java или как ввести данные с консоли Джавы

Чтобы обеспечить ввод с консоли Java, в классе System есть объект in. Именно через объект System.in работать не очень удобно, поэтому часто применяют класс Scanner. Он уже, в свою очередь, как раз таки и применяет System.in.

Рассмотрим практический пример:

 
import java.util.Scanner; public class Main < public static void main(String[] args) < Scanner in = new Scanner(System.in); System.out.print("Введите любой номер: "); int num = in.nextInt(); System.out.printf("Ваш номер: %d \n", num); in.close(); >>

Сам по себе класс Scanner хранится в пакете java.util, поэтому в начале кода мы выполняем его импорт посредством команды import java.util.Scanner.

Для создания непосредственно объекта Scanner в его конструктор осуществляется передача объекта System.in. Далее можно получать значения. В нашей мини-программе сначала выводится просьба ввести номер, а потом введённое пользователем число помещается в переменную num (для получения введённого значения задействуется метод in.nextInt() , возвращающий набранное на клавиатуре целочисленное значение.

Лучше всего попробовать работу этой программы с помощью одного из многочисленных онлайн-компиляторов.

Работать она будет простейшим образом: 1. Сначала вы увидите сообщение в консоли «Введите любой номер:». 2. После ввода числа (пускай это будет 8) в консоли появится второе сообщение — «Ваш номер: 8».

Для класса Scanner предусмотрены и другие методы: • next() — для считывания введённой строки до первого пробела; • nextLine() — для всей введённой строки; • nextInt() — считывает введённое число int; • nextDouble() — для double; • nextBoolean() — для boolean; • nextByte() — для byte; • nextFloat() — для float; • nextShort() — для short.

Давайте напишем простую программу, обеспечивающую ввод информационных данных о человеке в консоль Java:

 
import java.util.Scanner; public class Main < public static void main(String[] args) < Scanner in = new Scanner(System.in); System.out.print("Введите имя: "); String name = in.nextLine(); System.out.print("Введите возраст: "); int age = in.nextInt(); System.out.print("Введите вес: "); float height = in.nextFloat(); System.out.printf("Name: %s Age: %d Height: %.1f \n", name, age, height); in.close(); >>

В этой программке пользователь последовательно вводит данные разных типов: String, int и float. Потом вся информация выводится в консоль Java:

 
Введите имя: Андрей Введите возраст: 39 Введите вес: 89 Name: Андрей Age: 39 Height: 89.0

Вот и всё. Это базовые вещи, если же вас интересуют более продвинутые знания, записывайтесь на курс OTUS в Москве:

Запуск программы с консоли

В предыдущей лекции мы скомпилировали небольшую программу, и получили на выходе файл MySolution.class , содержащий эту же программу в виде байт-кода. Исходный код был таким:

 class MySolution < public static void main(String[] args) < System.out.println("Привет командная строка!"); >> 

Теперь давай передадим JVM этот файл .class , чтобы она его выполнила. Для этого воспользуемся командой java и укажем имя класса содержащего метод main :

 D:\temp>java MySolution 

В консоль выведется надпись "Привет командная строка!".

Обрати внимание, что теперь нужно указывать не имя файла ( MySolution.class ), а имя класса ( MySolution ).

Давай попробуем запустить с консоли еще одну программу, на этот раз использующую массив args , параметр метода main :

 public class MyArgs < public static void main(String[] args) < if (args.length == 3) < System.out.println(args[0].toLowerCase()); System.out.println(args[1].toUpperCase()); System.out.println(args[2].length()); >else < System.out.println("Three parameters are expected."); >> > 
 D:\temp>javac MyArgs.java 
 D:\temp>java MyArgs 

Получаем вывод: Three parameters are expected.

В последнюю команду после имени класса через пробел можно указать параметры, которые попадут в массив строк args . Например, если передать такие параметры:

 D:\temp>java MyArgs One Two Three 

То массив args будет содержать: ["One", "Two", "Three"]

А на экран будет выведено:

Если хочешь чтобы какой-то параметр содержал пробелы, его нужно взять в двойные кавычки:

 D:\temp>java MyArgs "One Two" Three "Four Five Six" 

one two
THREE
13

В том случае, если твоя программа состоит из одного файла, есть упрощенный способ ее запуска без явной компиляции. Просто укажи команде java имя твоего файла с расширением .java и параметры, если надо:

 D:\temp>java MyArgs.java param1 param2 

Такую возможность добавили начиная с 11-й версии Java, чтобы упростить жизнь тем, кто только начинает изучать язык программирования.

  1. Компиляция и исполнение Java приложений под капотом
  2. В команде java есть встроенная помощь. Для ее отображения выполни в командной строке:
    • java --help

Eclipse for Java Developers. Навигация и редактирование

Наблюдая за со своими знакомыми, которые недавно начали изучать программирование или перешли на Eclipse c другой IDE, я часто замечаю что они почти не используют вспомогательные инструменты среды разработки. Они либо не знают о них вообще, либо не понимают какую практическую пользу они могут принести.
Данная статья предназначена в основном для начинающих в работе с Eclipse. Но в процессе подготовки статьи я сам узнал о нескольких простых и удобных инструментах, которые за два года активной разработки ни разу не использовал.
В данной статье речь пойдет о навигации и редактировании.
Внутри скриншоты.

Так как, основная польза данных инструментов проявляется при использовании горячих клавиш, я составил следующие таблицы:

Навигация

Описание
Ctrl+F +F Простой поиск/замена
Ctrl+H Ctrl+H Продвинутый поиск/замена
Ctrl+Shift+R +⇧+R Открыть ресурс
Ctrl+Shift+T +⇧+T Открыть логическую структуру(Класс)
Ctrl+Shift+G +⇧+G Найти вхождения переменной, метода, класса
F4 F4 Открыть меню иеарархии
Ctrl+LeftClick +LeftClick Перейти к реализации или определению класса, функции, переменной
F3 F3 Перейти к определению
Ctrl+T ⌘+T Перейти к реализации
Ctrl+L +L Перейти к линии с определенным номером
Alt+( left right ) +( [ ] ) Перемещение в предыдущее/следующее место просмотра в редакторе
Ctrl+Q Ctrl+Q Перейти к последнему месту редактирования
Ctrl+E +E Показать список открытых в редакторе файлов
Ctrl+F6 (Ctrl+Shift+F6) ⌘+F6 (⌘+⇧+F6) Следующий/предыдущий редактор
Ctrl+O +O Показать поля и методы класса
Ctrl+T +T Показать иерархию класса
F2 F2 Открыть javadoc
Ctrl+Shift+(up | down) Ctrl+⌥+(up | down) Перейти к следующему/предыдущему методу

Редактирование

Описание
Ctrl+Space Ctrl+Space Автодополнение
Ctrl+1 +1 Возможные действия
Ctrl+Shift+O +⇧+O Организация импорта пакетов
Ctrl+Shift+F +⇧+F Автоформатирование кода
Shift+Alt+S ⇧+⌥+S Меню генерации кода
Shift+Alt+T ⇧+⌥+T Меню рефакторинга
Shift+Alt+R ⇧+⌥+R Переименование переменной, метода, класса
Shift+Alt+M +⌥+M Выделение части кода в отдельный метод
Ctrl+Alt+(up|down) +⌥+(up|down) Дублирование строки
Alt+(up|down) ⌥+(up|down) Перемещение строки
Ctrl+/ Ctrl+7 ⌘+/ ⌘+7 Однострочный комментарий
Ctrl+Shift+/ +⇧+/ Многострочный комментарий
Ctrl+D ⌘+D Удалить строку или выделенный фрагмент

Рассмотрим каждый инструмент более подробно:

Простой поиск/замена

Ctrl+F⌘+F

Данный инструмент присутствует в многих текстовых редакторах. Предоставляет возможность находить нужные вхождения текста в текущем документе. И при необходимости быстро заменить на другой текст.
Существует возможность поиска при помощи регулярных выражений, с помощью которой можно составить сложный поиск, однако используется крайне редко для поиска по одному классу.
Если выделить текст и применить данный инструмент — выделенный текст сразу подставится в поле поиска.
Применение:
— Быстрый переход к нужной части кода;
— Замена одного слова на другое. При необходимости написать две функции, которые идентичные по логической структуре, но работают с разными коллекциями, быстрее написать одну функцию, скопировать и сделать замену.

Продвинутый поиск/замена

Ctrl+HCtrl+H

Данный инструмент имеет расширяет возможности, который был рассмотрен ранее.
Основные особенности:
— поиск по всем проектам, а не по одному;
— возможен как полнотекстовый поиск так и типизированный;
— при большом количестве файлов полнотекстовый поиск занимает большое количество времени.
Применение:
— Найти вхождения элемента или текста во всех проектах.

Открыть ресурс

Ctrl+Shift+R⌘+⇧+R

Применение:
Быстрое открытий файла с данными или классом.

Открыть логическую структуру(Класс)

Ctrl+Shift+T⌘+⇧+T

Можно ввести только заглавные буквы класса. Например, для поиска класса AbstractDogFactory достаточно ввести ADF.
Также можно использовать *.

Применение:
Быстрое открытие файла с классом. Другие файлы игнорируются.

Найти вхождения переменной, метода, класса

Ctrl+Shift+G⌘+⇧+G

Для выделенного элемента ищет его использование по всем проектам.
Применение:
Намного быстрее чем обычный поиск. Достаточно выделить элемент, применить инструмент и на экране список мест, где этот элемент используется.

Открыть меню иеарархии

F4F4

Перейти к реализации или определению класса, функции, переменной

Ctrl+LeftClick⌘+LeftClick

При зажатой клавише Ctrl левый клик мышкой по элементу производит переходит к его определению или реализации.
Применение:
— легко обнаружить где объявлялась переменная;
— быстрый переход в реализацию класса или метода.

Перейти к определению

F3F3

Переход к определению элемента, на котором стоит курсор.

Перейти к реализации

Ctrl+T⌘+T

Переход к реализации элемента, на котором стоит курсор.

Перейти к линии с определенным номером

Ctrl+L⌘+L

Переход к строке с заданным номером.
Применение:
При взаимодействии программисты для того чтобы указать место в коде — называют файл и строку.

Перемещение в предыдущее/следующее место просмотра в редакторе

Alt+( left right )⌘+( [ ] )

Возвращается на предыдущее/следующее место где просматривался исходный код.
Применение:
При углублении в реализацию одной из функций или класса, и возвращение назад.

Перейти к последнему месту редактирования

Ctrl+QCtrl+Q

Возвращается на предыдущее место где редактировался исходный код.
Применение:
Быстрый возврат на место работы.

Показать список открытых в редакторе файлов

Ctrl+E⌘+E

Применение:
Быстрый переход между файлами.

Следующий/предыдущий редактор

Ctrl+F6 (Ctrl+Shift+F6)⌘+F6 (⌘+⇧+F6)

Данные сочетания клавиш не всегда удобны, по-этому имеет смысл переназначить их к примеру на Ctrl+Tab / Ctrl+Shift+Tab
Для быстрого переключения подойдет: Ctrl+Page Up/Page Down — Linux/Windows. Ctrl+Fn+Up/Down — OS X

Показать поля и методы класса

Ctrl+O⌘+O

При повторном нажатии горячих клавиш в список добавляются методы из классов — родителей
Применение:
— быстрая оценка структуры класса;
— быстрый переход в нужный метод.

Показать иерархию класса

Ctrl+T⌘+T

При повторном нажатии: разворачивает иерархию в обратную сторону и показывает реализованные интерфейсы.

Применение:
Быстрый переход в родительские классы.

Открыть javadoc

F2F2

Перейти к следующему/предыдущему методу

Ctrl+Shift+(up | down)Ctrl+⌥+(up | down)

Автодополнение

Ctrl+SpaceCtrl+Space (конфликтует с Spotlight)

Инструмент дает возможность не писать полные имена функций, классов и переменный, а только их часть, программист выбирает завершение из предложенных.
Однако многие не знают некоторых особенностей автодополнения в eclipse:
— если при выборе автодполнения нажать Ctrl+Enter вместо Enter, слово которое стоит правее курсора заменится на автодополненное.
— автодополнения работает для всех классов, даже для тех, для которых еще не сделан import. Если вы автодополните такой класс — импорт добавится автоматически.
— автодополнение работает для новых переменных:
если вы написали

 Point2D 

и вызовите автодополнение, то получите

 Point2D point2d 

— в eclipse присутствуют шаблоны для быстрого написания:

 syso 
 System.out.println(); 

Наиболее популярные шаблоны:
— syso
— for
— while
— switch
— catch
Посмотреть все шаблоны, а так же добавить свои можно в настройках, в вкладке «Templates».

Возможные действия

Ctrl+1⌘+1

На мой взгляд самый полезный инструмент в процессе написания кода.
На основе того, на какой строке стоит курсор и есть ли выделение текста, eclipse предлагает возможные варианты изменений и дополнений.
Примеры работы инструмента:
— создание загрушек для реализации методов интерфейса или абстрактного класса

public class Run implements Runnable

действия на строчке с названием класса

public class Run implements Runnable < @Override public void run() < // TODO Auto-generated method stub >> 

— создание новых методов
Если в текущей части кода необходим метод, а он еще не существует.

 boolean success = isSuccess(); 
 private boolean isSuccess() < // TODO Auto-generated method stub return false; >

— объявление переменных
Если необходимо использовать результат работы функции

 isSuccess(); 

объявляется переменная с правильным именем

 boolean success = isSuccess(); 

— выделение константы
Если внутри кода есть цифра или текст, который необходимо вынести в константу, выделем его и применим инструмент:

 String success = "success"; 
 private static final String SUCCESS = "success"; 

Организация импорта пакетов

Ctrl+Shift+O⌘+⇧+O

Удаление импортов не используемых пакетов и добавление недостающих.

Автоформатирование кода

Ctrl+Shift+F⌘+⇧+F

Приведение кода в читабельный вид:
— делает правильные табуляции;
— добавляет/убирает пробелы;
— убирает лишние отступы;
— ограничивает длину строки — переносит текст на следующую другую строку.
Работает для всего выделенного участка кода, или для всего класса.
Применение:
Иногда быстрее написать плохо отформатированную функцию и нажать горячие клавиши, чем писать сразу красиво.

Меню генерации кода

Shift+Alt+S⇧+⌥+S

Автоматическая генерация — - get и set методов;
— заготовок переопределенных и реализуемых функций;
— hashcode и equals;
— toString;
— конструкторы.
Применение:
Не стоит тратить время на стандартные методы, если их реализации не является специфической.

Меню рефакторинга

Shift+Alt+T⇧+⌥+T

Переименование переменной, метода, класса

Shift+Alt+R⇧+⌥+R

Переименование выделенного метода. Благодаря рефакторингу метод будет переименован по всему проекту.

Выделение части кода в отдельный метод

Shift+Alt+M⇧+⌥+M

Выделение выделенной части в новый метод. Все возможные дубликаты этой части кода в данном классе автоматически заменятся на вызов нового метода.

Дублирование строки

Ctrl+Alt+(up|down)⌘+⌥+(up|down)

Применение:
Если следующая строка будет похожа на текущую — быстрее скопировать текущую и изменить ее, чем писать еще раз.

Перемещение строки

Alt+(up|down)⌥+(up|down)

Применение:
Быстрый перенос части кода, без необходимости копировать и вставлять.

Однострочный комментарий

Ctrl+/ Ctrl+7⌘+/ ⌘+7

Многострочный комментарий

Ctrl+Shift+/⌘+⇧+/ (конфликтует с системными горячими клавиши для вызова Справки)

При использование на закомментированном коде — комментарии убираются.

Удалить строку или выделенный фрагмент

Ctrl+D⌘+D

UPDATE: Исправил и дополнил статью.
Большое спасибо arturphoenix,AgentSIB,mishadoff,mdcool,Lihonosov,Aivean,anoshenko,lany,abusalimov,bimeg, netslow,majus за дополнения и комментарии.
Некоторые инструменты косвенно относятся к навигации и редактированию, по-этому я не включил их в статью, но я постораюсь их включить в следующую.

  • eclipse
  • горячие клавиши
  • эффективность работы

Как запустить Slenium+Java+Cucumber без ide

Фотография

Вроде как существует некий java cucumber.api.cli.Main - но как этим пользоваться я пока не понял. В любом случае наверняка есть способ запустить это просто из командной строки. Расскажите пожалуйста как это сделать?

#2 rlabs

  • Members
  • PipPipPipPipPip
  • 660 сообщений
    • Город: Россия, Санкт-Петербург

    Отправлено 01 августа 2019 - 05:05

    Как запустить эти тесты из командной строки и передать нужные параметры, описано в https://cucumber.io/. er/api/#options

    но так как у вас они завязаны на раннер Junit, могут возникнуть проблемы (кукумбер не всегда понимает junit-специфичные методы конфигурации тестов), поэтому эээ один из самых простых способов - запустить их мавеном, благо проект уже есть. Как это сделать, можно посмотреть здесь: https://maven.apache. s/cucumber.html

    и наконец, можно сделать исполняемый jar. Для этого надо выбрать, что вы будете использовать как runner (junit или cucumber), и подключить к проекту maven-assembly-plugin (https://maven.apache. _Executable_JAR), прописав выбранный раннер как mainClass.

    во третьем случае, если нужно менять параметры cucumber при запуске, можно использовать переменные окружения или командной строки (как в первом случае).

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *