6 корисних інструментів командного рядка, які повинен знати Java-розробник
Джерело:
Technotification Java - одна з найбільш популярних мов програмування. Однією з причин такої уваги до цієї мови є те, що Java Runtime Environment дозволяє запускати Java-додатки на різних платформах. Запуск та компіляцію можна здійснювати, зокрема, з командного рядка. Використовуючи інструменти командного рядка, розробник може спростити процес створення програм та виконання багатьох інших завдань.
Сьогодні я розповім про шість корисних інструментів командного рядка, які повинен знати Java-розробник.
Агрегатор статистики Java або команду jstat використовують, коли виникає проблема зі швидкістю запуску програми. Це службовий інструмент, який відображає статистику продуктивності Java Virtual Machine (JVM). Використовуйте його, коли потрібно дізнатися розмір динамічної пам'яті або алгоритм автоматичного складання сміття JRE.
Jdeps - це аналізатор залежностей класів Java, корисний швидкого визначення статичних залежностей додатків і бібліотек. Jdeps також пропонує варіанти новішої та кращої API, яку ви можете використовувати для заміни існуючої версії.
Javac — один із найкорисніших інструментів командного рядка для розробників. Він входить до складу JDK з першої версії та включений у складання багатьох популярних IDE. Javac використовується для усунення будь-яких проблем, що виникають у процесі складання та розгортання проекту.
Він скасовує компіляцію, розділяє файли класів і показує, що всередині них. Його також називають дизассемблером (Java Class File Disassembler). Ви можете використовувати Javap, щоб дізнатися, як працює конкретний оператор Java. Також за допомогою профілювання ви можете побачити методи, доступні в класі, якщо у вас немає доступу до коду.
Утиліта Java Archive або jar використовується для створення стисненого архівного файлу. Це ще один корисний інструмент, яким регулярно користуються багато розробників. Jar також може стати в нагоді, коли ви хочете порівняти одну версію випуску коду з іншою або вказати точку входу для вбудованих JAR-файлів або інших виконуваних файлів.
Цей інструмент працює незалежно від операційної системи та надає зручний спосіб визначення ідентифікатора процесу (PID). Припустимо, що ви запустабо програму і хочете зв'язати її з Java Memory-Map (jmap). Для того, щоб зробити це, потрібен PID, і саме тут на допомогу приходить jps. Найчастіше корисно використовувати комбінацію прапорів «-mlv». Вона друкує аргументи основного методу, аргументи повних імен пакетів, що передаються JVM.
Висновок
Це лише кілька корисних інструментів командного рядка, які повинен знати кожен Java-розробник. Згодом майже всі інструменти, які застосовуються у створенні софту на Java, значно покращабося. Але багато розробників все ще покладаються на командний рядок для вирішення важливих завдань. Крім того, якщо ви новачок, завжди рекомендується мати хоча б базові уявлення про популярні інструменти командного рядка. Це допоможе вам не лише у навчанні, а й у кар'єрі.
Jbang: корисний інструмент для тестування бібліотек Java
Джерело:
DZone Щоразу, коли виходить нова бібліотека Java, розробникам цікаво з нею ознайомитися. Але іноді це буває складно через проблеми з налаштуванням проекту в IDE або Maven. Звичайно, шляхи до класів можна прописати і в командному рядку, але для деяких лінивих розробників це дуже громіздко. І ось тут на допомогу приходить
jbang ! З ним зникнуть проблеми з налаштуванням проекту для тестування бібліотеки або запуском Java-файлу!
Зрозуміло, в Java є JShell, але jbang здається краще багато в чому. Jbang - це невеликий акуратний інструмент, написаний Максом Рідал Андерсен (maxandersen), який:
- дозволяє запускати java-файли як сценарій де завгодно - з Java 8 + або jshell;
- допомагає випробувати будь-яку Java API без необхідності встановлення, налаштування або конфігурації проекту для Maven, Gradle або будь-якої іншої системи збирання.
Короткий перелік можливостей jbang:
- Підтримує Java 8 або вище, але рекомендується Java 11;
- Оголошення залежностей через
//DEPS group:artifact:version
або @Grab
анотації;
- Параметри компіляції та виконання за допомогою та ;
//JAVAC_OPTIONS
//JAVA_OPTIONS
- Підтримує роботу у Windows, Linux та Mac;
- Запуск програми JavaFX на Java 8 і вище без необхідності перекодування;
- І багато іншого...
Тепер давайте розберемося, у чому полягають переваги jbang. Для цього візьмемо хорошу бібліотеку - Soup. Це бібліотека Java, яка надає дуже зручні API для отримання URL-адреса, отримання та керування вмістом HTML за допомогою методів DOM і селекторів CSS або, простіше кажучи, JQuery-подібного синтаксису для роботи з DOM. Для початку нам потрібно буде запустити клас
jbang
, використовуючи
jbang init hellojsoup.java
. Це створить
hellojsoup.java
файл із
hellojsoup
класом та основним методом. У верхній частині файлу також є команди для
Unix !shebang
та
DEPS
оголошення. Це оголошення є коментарем, де ми вказуємо Gradle-подібні залежності від формату -
groupId:artifactId:version
. У нашому випадку це буде
org.jsoup:jsoup:1.13.1
. Ось код, який виконує простий виклик Вікіпедії та відображає заголовки у розділі новин. Це трохи змінена версія, що представлена на сайті Soup.
import static java.lang.System.*;
import org.jsoup.nodes.Document;
import org.jsoup.Jsoup;
import org.jsoup.select.Elements;
import org.jsoup.nodes.Element;
public class hellojsoup {
public static void main(String... args) throws Exception {
Document doc = Jsoup.connect("https://en.wikipedia.org/").get();
out.println(doc.title());
Elements newsHeadlines = doc.select("#mp-itn b a");
for (Element headline : newsHeadlines) {
out.println(String.format("%s\n\t%s", headline.attr("title"), headline.absUrl("href")));
}
}
}
Щоб запустити код, потрібно буде ввести наступну команду, де запуск є необов'язковою командою.
jbang run hellojsoup.java
Під час запуску цієї програми заголовки дня відображатимуться в розділі новин. На момент написання цієї статті отримано такі заголовки. Shell
Wikipedia, the free encyclopedia
2020 Twitter bitcoin scam
https://en.wikipedia.org/wiki/2020_Twitter_bitcoin_scam
2020 Armenian?Azerbaijani skirmishes
https://en.wikipedia.org/wiki/2020_Armenian%E2%80%93Azerbaijani_skirmishes
C/2020 F3 (NEOWISE)
https://en.wikipedia.org/wiki/C/2020_F3_(NEOWISE)
Portal:Current events
https://en.wikipedia.org/wiki/Portal:Current_events
Deaths in 2020
https://en.wikipedia.org/wiki/Deaths_in_2020
Wikipedia:In the news/Candidates
https://en.wikipedia.org/wiki/Wikipedia:In_the_news/Candidates
Найпрекрасніше в jbang це те, наскільки він простий і легкий. Він потрібний не просто для тестування бібліотек, але і як інструмент, який у майбутньому буде широко використовуватися у виробничому середовищі, особливо в мікросервісах та безсерверних додатках. Ніякого складного налаштування сервера, тільки один-єдиний файл Java, який чудово справляється зі своїм завданням. Jbang підтримує роботу з vertx, undertow, JavaFX, resteasy, ratpack, з усіма основними IDE, включаючи IntelliJ IDEA, та багатьма іншими технологіями. Якщо ви хочете дізнатися більш детальну інформацію про jbang та ознайомитися з його документацією, відвідайте сторінку цього інструменту на
GitHub . Jbang виглядає дуже перспективно, тому я не здивуюсь, якщо в майбутньому він з'явиться у JDK!
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ