JavaRush/Java Π±Π»ΠΎΠ³/Random/ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #36. 6 ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки,...

ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #36. 6 ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. Jbang: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ инструмСнт для тСстирования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Java

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹ Random
участников

6 ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Technotification Java β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных языков программирования. Одной ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΡΡ‚ΠΎΠ»ΡŒ высокого внимания ΠΊ этому языку являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Java Runtime Environment позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Java-прилоТСния Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Запуск ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ, Π² Ρ‚ΠΎΠΌ числС, ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ инструмСнты ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡.ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #36. 6 ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. Jbang β€” созданиС сцСнариСв ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ для Java - 1БСгодня я расскаТу ΠΎ ΡˆΠ΅ΡΡ‚ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтах ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

АгрСгатор статистики Java (jstat)

АгрСгатор статистики Java ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ jstat ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ запуска прилоТСния. Π­Ρ‚ΠΎ слуТСбный инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ статистику ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Java Virtual Machine (JVM). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ динамичСской памяти ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ автоматичСской сборки мусора JRE.

ДиспСтчСр зависимостСй Java (jdeps)

Jdeps β€” это Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ зависимостСй классов Java, ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ для быстрого опрСдСлСния статичСских зависимостСй ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Jdeps Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ API, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π·Π°ΠΌΠ΅Π½Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ вСрсии.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Java (javac)

Javac β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Он Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав JDK ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² сборку ΠΌΠ½ΠΎΠ³ΠΈΡ… популярных IDE. Javac ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для устранСния Π»ΡŽΠ±Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… Π² процСссС сборки ΠΈ развСртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Java (javap)

Он отмСняСт ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, раздСляСт Ρ„Π°ΠΉΠ»Ρ‹ классов ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½ΠΈΡ…. Π•Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ дизассСмблСром (Java Class File Disassembler). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Javap, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Java. Π’Π°ΠΊΠΆΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, доступныС Π² классС, Ссли Ρƒ вас Π½Π΅Ρ‚ доступа ΠΊ исходному ΠΊΠΎΠ΄Ρƒ.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° архивирования Java (jar)

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Java Archive ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° jar ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания сТатого Π°Ρ€Ρ…ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ рСгулярно ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. Jar Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ€ΡΠΈΡŽ выпуска ΠΊΠΎΠ΄Π° с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π° для встроСнных JAR-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ².

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ состояния процСсса JVM (jps)

Π­Ρ‚ΠΎΡ‚ инструмСнт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСзависимо ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ опрСдСлСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° процСсса (PID). ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ запустили ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Π΅ с Java Memory-Map (jmap). Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Π½ΡƒΠΆΠ΅Π½ PID, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ здСсь Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ jps. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Ρ„Π»Π°Π³ΠΎΠ² Β«-mlvΒ». Она распСчатываСт Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ основного ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ»Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ JVM.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π­Ρ‚ΠΎ лишь нСсколько ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΡ‡Ρ‚ΠΈ всС инструмСнты, примСняСмыС Π² создании софта Π½Π° Java, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ»ΠΈΡΡŒ. Но ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ всС Π΅Ρ‰Π΅ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Π°ΠΆΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ, всСгда рСкомСндуСтся ΠΈΠΌΠ΅Ρ‚ΡŒ хотя Π±Ρ‹ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ прСдставлСния ΠΎ популярных инструмСнтах ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡƒΡ‡Π΅Π±Π΅, Π½ΠΎ ΠΈ Π² ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π΅.

Jbang: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ инструмСнт для тСстирования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Java

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: DZone Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ новая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Java, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ интСрСсно с Π½Π΅ΠΉ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ. Но ΠΈΠ½ΠΎΠ³Π΄Π° это Π±Ρ‹Π²Π°Π΅Ρ‚ слоТно ΠΈΠ·-Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с настройкой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² IDE ΠΈΠ»ΠΈ Maven. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡƒΡ‚ΠΈ ΠΊ классам ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Π½ΠΎ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π»Π΅Π½ΠΈΠ²Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² это слишком Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ. И Π²ΠΎΡ‚ здСсь Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ jbang! Π‘ Π½ΠΈΠΌ исчСзнут ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с настройкой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для тСстирования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ запуском Java-Ρ„Π°ΠΉΠ»Π°!ΠšΠΎΡ„Π΅-Π±Ρ€Π΅ΠΉΠΊ #36. 6 ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтов ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. Jbang β€” созданиС сцСнариСв ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ для Java - 2РазумССтся, Π² 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. Для этого возьмСм Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ β€” Jsoup. Π­Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° 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. Π’ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт простой Π²Ρ‹Π·ΠΎΠ² Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ новостСй. Π­Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ измСнСнная вСрсия, прСдставлСнная Π½Π° сайтС Jsoup.
//usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS org.jsoup:jsoup:1.13.1
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!
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ
  • популярныС
  • Π½ΠΎΠ²Ρ‹Π΅
  • старыС
Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
Π£ этой страницы Π΅Ρ‰Π΅ Π½Π΅Ρ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ коммСнтария