Π Π°Π·Π½ΠΎΠ΅

Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ java: ​​Java Code. Π‘Π±ΠΎΡ€Π½ΠΈΠΊ исходников 2018. А. ΠšΡ€ΡŽΡ‡ΠΊΠΎΠ²

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

РСсурсы с исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ Android

Π’ этот Ρ€Π°Π· Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рСсурсы ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ я Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ.

На этих сайтах ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ интСрСсных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² сразу с исходными ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния.

НиТС прСдставлСн список сайтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я использовал Ρ‡Π°Ρ‰Π΅ всСго, хотя ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ рСсурсов Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ β€” ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎΒ Β Π½Π°ΠΉΡ‚ΠΈ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· Google.

Π˜Ρ‚Π°ΠΊ, список сайтов для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… программистов Android:

Β 

1.Β http://www.androidhive.info

На этом сайтС Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ исходныС ΠΊΠΎΠ΄Ρ‹.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Π² основном β€” для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

Π’ самом Π½ΠΈΠ·Ρƒ страницы прСдставлСны Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярныС ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ исходныС ΠΊΠΎΠ΄Ρ‹:

Π‘ΠΏΡ€Π°Π²Π° свСрху Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» Download с большим количСством исходных ΠΊΠΎΠ΄ΠΎΠ² Π½Π° любой вкус.

Когда я Π½Π°Ρ‡ΠΈΠ½Π°Π» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ Android, Ρ‚ΠΎ скачал с этого сайта ΠΏΠΎΡ‡Ρ‚ΠΈ всС исходники ΠΈ постСпСнно ΠΈΠ·ΡƒΡ‡Π°ΡŽ ΠΈΡ… Π΄ΠΎ сих ΠΏΠΎΡ€.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сразу Π½Π° сайтС, Ссли Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ. Они довольно ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

Π‘Π°ΠΉΡ‚ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ развиваСтся, скоро появятся Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹, поэтому слСдитС Π·Π° Π½ΠΈΠΌ.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: справа снизу ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ запрос Π½Π° Π°Π½Π³Π».языкС, ΠΊΠ°ΠΊΠΎΠΉ ΡƒΡ€ΠΎΠΊ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° сайтС.

2.Β http://blog.interstellr.com/post/39321551640/14-great-android-apps-that-are-also-open-source

ЗнамСнитая ссылка, которая Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π±Π»ΠΎΠ³Π°Ρ….

На страницС прСдставлСны Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ с Google Play, ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈΠ»Π°Π³Π°ΡŽΡ‚ΡΡ.

ПослС наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Source Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° github, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΠ»ΠΈ просто ΠΊΠ°ΠΊ Π°Ρ€Ρ…ΠΈΠ².

Π­Ρ‚ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ интСрСсны Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ свои знания Π² Android ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ нСстандартно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

3. Β http://software.intel.com/en-us/blogs/2012/03/13/game-engines-for-android

ΠšΡ‚ΠΎ увлСкаСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈΠ³Ρ€ ΠΏΠΎΠ΄ Android β€” Π½Π° этой страницС прСдставлСны ссылки Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ Π΄Π²ΠΈΠΆΠΊΠΈ.

Π― ΠΏΠΎΠΊΠ° Π΅Ρ‰Π΅ Π½Π΅ дошСл Π΄ΠΎ ΠΈΠ³Ρ€, Π½ΠΎ Π² скором Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ ΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π½ΡΡ‚ΡŒΡΡ ΠΈΠΌΠΈ, Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ 3D тСкстур.

Β 4. http://developer.samsung.com/android/samples/

Если Ρƒ вас Π΅ΡΡ‚ΡŒ устройство ΠΎΡ‚ Samsung (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ извСстного Π±Ρ€Π΅Π½Π΄Π°), Ρ‚ΠΎ часто Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС прСдставлСна Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ информация для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

НапримСр для ΠΌΠΎΠ΅Π³ΠΎ Samsung Galaxy S3 я нашСл ΠΌΠ½ΠΎΠ³ΠΎ Ρ‡Π΅Π³ΠΎ интСрсного: ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, исходныС ΠΊΠΎΠ΄Ρ‹, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ API для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΈ ΠΏΡ€.

ΠŸΠΎΠΈΡ‰ΠΈΡ‚Π΅ для своСго Π±Ρ€Π΅Π½Π΄Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС.

НапримСр, Π²ΠΎΡ‚ сайт для Sony, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ исходников, opensource ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ Ρ‚.Π΄.

http://developer.sonymobile.com

Β 

Если Ρƒ вас Π΅ΡΡ‚ΡŒ, Ρ‡Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ β€” поТалуйста ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² коммСнтариях, ваши источники Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ всСм читатСлям

10 Π»ΡƒΡ‡ΡˆΠΈΡ… Java Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² | MnogoBlog

ЗдравствуйтС, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π»ΡƒΡ‡ΡˆΠΈΠ΅ Π½Π° сСгодняшний дСнь Java Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ исходники для ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½ΠΈΠΆΠ΅

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ – ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². УпотрСбляСтся Ρ‚Π°ΠΊΠΆΠ΅ слово «каркас». Π‘Π²ΠΎΠ΅Π³ΠΎ Ρ€ΠΎΠ΄Π° каркас. Π’Π΅Π΄ΡŒ ΡΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈΠ»ΠΈ сайт Π½Π° основС каркаса, Ρ‡Π΅ΠΌ с ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ нуля. Π‘ нуля Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ слоТнСС, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Ρ‡ΡŒ Π½Π΅ ΠΈΠ΄Π΅Ρ‚ ΠΎ совсСм простых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ для всСго, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ: Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сСтСвых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, REST APIs, развСртывания Web-сСрвисов, создания ΠΈΠ³Ρ€ ΠΈ Π΄Ρ€.

1. Grails

Π‘Π°ΠΉΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: β€œgrails.org”

Grails β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ каркас для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, написанный Π½Π° скриптовом языкС Groovy, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ основан Π½Π° Java.

Grails сдСлан ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Java, ΠΈ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСстС с Java Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π±Π°Π·ΠΎΠΉ ΠΊΠΎΠ΄Π°.

Grails поддСрТивСтся Ρ‚Π°ΠΊΠΈΠΌΠΈ популярными срСдами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠ°ΠΊ Eclipse, Netbeans, Intellij.

ПолСзноС:
Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ своё ΠΏΠ΅Ρ€Π²ΠΎΠ΅ простоС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с Grails Π² IDE NetBeans Π½Π° русском языкС:
β€œnetbeans.org/kb/docs/web/grails-quickstart_ru.html”

2. Spring

Π‘Π°ΠΉΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: β€œspring.io”

Spring Framework (ΠΈΠ»ΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ Spring) β€” ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для Java-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Spring, вСроятно, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстСн ΠΊΠ°ΠΊ источник Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, Π½ΡƒΠΆΠ½Ρ‹Ρ… для эффСктивной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ слоТных бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Π½Π΅ тяТСловСсных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

Spring ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рассмотрСн ΠΊΠ°ΠΊ коллСкция ΠΌΠ΅Π½ΡŒΡˆΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΈΠ»ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅.
Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ этих Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ совмСстном ΠΈΡ… использовании.
Π­Ρ‚ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ дСлятся Π½Π° структурныС элСмСнты Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… комплСксных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:

– Inversion of Control-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€: ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ Java-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

– Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ аспСктно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

– Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ.

– Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ управлСния транзакциями.

– Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ MVC: каркас, основанный Π½Π° HTTP ΠΈ сСрвлСтах, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ мноТСство возмоТностСй для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ настройки.

– Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ доступа.

– Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

– Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ управлСния.

– Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сообщСниями.

– ВСстированиС: каркас, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ классы для написания ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… тСстов.

Spring ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ MVC-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

3. Vaadin

Π‘Π°ΠΉΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: β€œvaadin.com”

Vaadin β€” свободно распространяСмый Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ простых сайтов, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½ΠΎΠΉ финской ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ.

Вся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° вСдСтся Π½Π° Java, Π½ΠΎ Java-ΠΊΠΎΠ΄ выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° сСрвСрС, Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ ΠΆΠ΅ выполняСтся чистый JavaScript.

МоТно ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Π²Π΅ основныС ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: Π½Π° сторонС сСрвСра ΠΈ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°).

На ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

β€œdemo.vaadin.com/sampler/”

4. Play Framework

Π‘Π°ΠΉΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: β€œplayframework.com”

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Play с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ позволяСт Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π±-прилоТСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ языков программирования Java ΠΈ Scala. Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ прост Π² использовании.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Play поддСрТиваСтся Π² срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Eclipse and IntelliJ IDEA.

5. Spark

Π‘Π°ΠΉΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: β€œsparkjava.com”

Spark – ΠΌΠΈΠΊΡ€ΠΎ-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Kotlin ΠΈ Java 8 с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ усилиями.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Spark ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π² основном для созданяи REST APIs ΠΈ простых Π²Π΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ сСрвисов, Π° Ρ‚Π°ΠΊΠΆΠ΅ для создания сайтов.

6. Struts

Π‘Π°ΠΉΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°: β€œstruts.apache.org/index.html”

Struts β€” Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для создания Java Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Struts поставляСтся с ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ REST, AJAX ΠΈ JSON.

Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π±Ρ‹Π» Π½Π° ΠΏΠΈΠΊΠ΅ своСй популярности Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ – Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½ Π±Ρ‹Π» Π»ΠΈΠ΄Π΅Ρ€ΠΎΠΌ Π² Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° Java – Π½ΠΎ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΊΠ°ΠΊ Spring, Grails, Vaadin ΠΈ Π΄Ρ€. ΠΎΡ‚ΠΎΠ±Ρ€Π°Π»ΠΈ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ долю Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Одноко, Π½Π΅Π΄Π°Π²Π½ΠΎ Π²Ρ‹ΡˆΠ»ΠΎ ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Struts ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ снова пСрСходят Π½Π° Π½Π΅Π³ΠΎ.

7. Netty

Netty – это асинхронный событийно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сСтСвой Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ
для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ высокоэффСктивных ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр.

Π€Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Netty с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π³ΠΎΠ΄ΠΎΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ. Π’ 2011 Π³ΠΎΠ΄Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» удостоСн Π½Π°Π³Ρ€Π°Π΄Ρ‹ Duke’s Choice Π·Π° ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΈ Π² сСтСвом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.
БСгодня Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π² своих Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ… Ρ‚Π°ΠΊΠΈΠ΅ Π³ΠΈΠ³Π°Π½Ρ‚Ρ‹, ΠΊΠ°ΠΊ Apple, Twitter, Facebook, Google ΠΈ Instagram. На Π±Π°Π·Π΅ Netty построСны ΠΌΠ½ΠΎΠ³ΠΈΠ΅ извСстныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ: Infinispan, HornetQ, Vert.x, Apache Cassandra ΠΈ Elasticsearch.

8. JavaFX (Π½Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ)

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ JavaFX: β€œoracle. com/technetwork/java/javase/overview/javafx-overview-2158620.html”

JavaFX β€” ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½Π° основС Java для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с насыщСнным графичСским интСрфСйсом. ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ для создания Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, запускаСмых нСпосрСдствСнно ΠΈΠ·-ΠΏΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Ρ‚Π°ΠΊ ΠΈ для ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (RIA), Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, ΠΈ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах. JavaFX ΠΏΡ€ΠΈΠ·Π²Π°Π½Π° Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π²ΡˆΡƒΡŽΡΡ Ρ€Π°Π½Π΅Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Swing. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° JavaFX ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ с Microsoft Silverlight, Adobe Flash ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ систСмами.

JavaFX Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² стандартныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ jdk ΠΈ jre. ΠŸΡ€ΠΎΡΡ‚ΠΎ скачайтС jdk ΠΈΠ»ΠΈ jre, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ javafx.

9. LibGDX

Π‘Π°ΠΉΡ‚ Ρ„Ρ€Π΅ΠΉΠ²ΠΎΡ€ΠΊΠ°: Β«libgdx.badlogicgames.comΒ»

Об этом Ρ„Ρ€Π΅ΠΉΠ²ΠΎΡ€ΠΊΠ΅ Ρƒ мСня Π΅ΡΡ‚ΡŒ нСсколько статСй Π² Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠ΅ – Android ΠΈ LibGDX.

libGDX – бСсплатный кроссплатформСнный Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€ ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, основанный Π½Π° языкС программирования Java с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, написанными Π½Π° C ΠΈ C++ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π’ настоящСС врСмя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Windows, Linux, Mac OS X, Android, iOS ΠΈ HTML5 ΠΊΠ°ΠΊ Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

Π’ΠΎ Π΅ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ libGDX ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ HTML5 странички, Π° Ρ‚Π°ΠΊΠΆΠ΅ Android, iOS прилоТСния ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Windows, Linux, Mac OS X!

10. JSF – Java Server Faces

Π‘Π°ΠΉΡ‚: β€œjavaee.github.io/javaserverfaces-spec/”

JSF – Java Server Faces ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сСрвСрных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ нСпосрСдствСнно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π²Π΅Π±-прилоТСниях.

Он слуТит для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов для Java EE-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ… MVC-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ запросами, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ JSF основываСтся Π½Π° использовании ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². БостояниС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса сохраняСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ страницу ΠΈ Π·Π°Ρ‚Π΅ΠΌ восстанавливаСтся, Ссли запрос повторяСтся. Для отобраТСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ JSP, Facelets, Π½ΠΎ JSF ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ XUL.

11. GWT

Π‘Π°ΠΉΡ‚: β€œgwtproject.org”

Google Web Toolkit (GWT) β€” свободный Java-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ajax-прилоТСния. Π•Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ β€” это компилятор Java -> JavaScript, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ‡Ρ‚ΠΈ всю Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ сСрвСра Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° основС Java ΠΈ лишь Π½Π° послСднСм этапС ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ JavaScript, HTML ΠΈ CSS. ВыпускаСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache вСрсии 2.0. GWT Π΄Π΅Π»Π°Π΅Ρ‚ Π°ΠΊΡ†Π΅Π½Ρ‚ Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ использованиС ΠΈ ΠΊΡ€ΠΎΡΡβ€Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для android, java β€” с самых ΠΏΠ΅Ρ€Π²Ρ‹Ρ… шагов

ВсСм ΠΊΡ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Ρ‚! Π’ послСдний Ρ€Π°Π· ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ Π² связи с нашим ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ для Π±Π»ΠΎΠ³Π°. БСгодня ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎ парсингС XML. Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ с Π²Π°ΠΌΠΈ ΡƒΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ которая … Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅ β†’

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚! НСдавно наткнулся Π² ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΈ Π³Π΅Π½ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π½Π° ΠΌΠΎΠΉ взгляд идСю Ρ‚Π°ΠΉΠΌ ΠΌΠ΅Π½Π΅ΠΆΠ΄ΠΌΠ΅Π½Ρ‚Π°! Π’ΠΎΡ‚ ΠΎΠ½Π°. Под ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ 1. ΠŸΡ€ΠΎΡΡ‚Π° ΠΈ гСниальна, ΠΊΠ°ΠΊ Ρ€Π°Π· такая ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ½Π΅ Π½Π΅Ρ…Π²Π°Ρ‚Π°Π»ΠΎ. И Ρ€Π΅ΡˆΠΈΠ» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎ Π±Ρ‹ позволяло ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° … Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅ β†’


Π ΡƒΠ±Ρ€ΠΈΠΊΠ°: Android, Новичку, ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
|

ΠœΠ΅Ρ‚ΠΊΠΈ: Android, Eclipse, thread, Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ, ΠΊΠΎΠ΄, Π½ΠΈΡ‚ΠΈ, ΠΏΠΎΡ‚ΠΎΠΊΠΈ, ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ android с нуля, ΠŸΡ€ΠΎΡΡ‚ΠΎ
|

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚! Π’ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для Π±Π»ΠΎΠ³Π°, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π½Π° WordPress для Π°Π½Π΄Ρ€ΠΎΠΈΠ΄Π°. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ Π²Π΅Π»ΠΈΠΊ β€” ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ содСрТимоС статСй с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ web-сайта. Π—Π°Π΄Π°Ρ‡Π°, ΠΊΠ°ΠΊ оказалось, Π²ΠΏΠΎΠ»Π½Π΅ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π° ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ΄Π΅Ρ€ΠΎΠ² Π²Ρ€ΠΎΠ΄Π΅ нас. … Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅ β†’

Π‘Π½ΠΎΠ²Π° ΠΏΡ€ΠΈΠ²Π΅Ρ‚! Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚Ρ‚Π° ΠΌΡ‹ с Π²Π°ΠΌΠΈ Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ змСю для Android. А сСгодня ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ это Π±Π»Π°Π³ΠΎΡ€ΠΎΠ΄Π½ΠΎΠ΅ занятиС. Π˜Ρ‚Π°ΠΊ, Ρƒ нас имССтся класс, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π»ΠΎΠ³ΠΈΠΊΡƒ самой ΠΈΠ³Ρ€Ρ‹ ΠΈ Π΅ΡΡ‚ΡŒ занятная activity β€” которая с ΠΎΠ΄Π½ΠΎΠΉ стороны β€” Π³Π»Π°Π²Π½ΠΎΠ΅ мСню, Π° … Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅ β†’

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚! БСгодня ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΡƒ для Android. ПослС достаточно Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π° Ρ€Π΅ΡˆΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΡƒ статСй. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· сайтов смСТной Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΌΠ½Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ статСй для Π΅Π³ΠΎ рСсурса. Π‘Ρ‚Π°Ρ‚ΡŒΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ … Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅ β†’

Как ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‡ΡƒΠΆΠΎΠΉ android ΠΏΡ€ΠΎΠ΅ΠΊΡ‚? Как Π² eclipse ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ· jar Ρ„Π°ΠΉΠ»Π°? Π’ΠΎΡ‚ сСгодня Π·Π°Π΄Π°Π»ΠΈ эти вопросы ΠΈ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ всСго, Π° я сам Π² своС врСмя ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ порылся Ρ‡Ρ‚ΠΎΠ± ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΊ Ρ‡Π΅ΠΌΡƒ, Ρ‚ΠΎ Π΄ΡƒΠΌΠ°ΡŽ … Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅ β†’

НСдавно я озадачился созданиСм кастомного ListView, Ρ‚Π°ΠΊΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ± вмСсто ΠΎΠ΄Π½ΠΎΠΉ строки Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ элСмСнтС списка Π±Ρ‹Π»ΠΎ Π±Ρ‹ нСсколько строк: Π½Ρƒ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ. ΠŸΠΎΡ€Ρ‹Π»ΡΡ ΠΏΠΎ ΠΈΠ½Π΅Ρ‚Ρƒ ΠΈ ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎΠ³ΠΎ русскоязычного Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»Π° Π½Π° эту Ρ‚Π΅ΠΌΡƒ ΠΊ соТалСнию … Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅ β†’

Π’Π΅Ρ€Π½ΡƒΡΡŒ ΠΊ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΈΠ³Ρ€ для Android. НС для Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΌΡ‹, ΠΏΡ€Π°Π²ΠΎ Π΄Π΅Π»ΠΎ, писали здСсь свой Π΄Π²ΠΈΠΆΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ± Π²ΠΎΡ‚ Ρ‚Π°ΠΊ бСсславно Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ всС это крСстиками-Π½ΠΎΠ»ΠΈΠΊΠ°ΠΌΠΈ. Π’ΡƒΡ‚ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Π» Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ Ρ„ΠΎΡ€ΡƒΠΌΠ΅ пост ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просит поэтапно Ρ€Π°ΡΠΏΠΈΡΠ°Ρ‚ΡŒ процСсс создания ΠΏΡΡ‚Π½Π°ΡˆΠ΅ΠΊ. … Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅ β†’

Π”ΠΎ этого я писал ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π·Π²ΡƒΠΊΠ° Π² свой Π΄Π²ΠΈΠΆΠΎΠΊ, Π° Π²ΠΎΡ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠ± Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ‚Π°ΠΊΠΎΠΉ вопрос Π±Ρ‹Π». НС мудрствуя Π»ΡƒΠΊΠ°Π²ΠΎ, я Ρ€Π΅ΡˆΠΈΠ» Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ … Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅ β†’

Ну Π²ΠΎΠΎΠ±Ρ‰Π΅-Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° со Π·Π²ΡƒΠΊΠΎΠΌ β€” это слишком Π³Ρ€ΠΎΠΌΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ для этой ΡΡ‚Π°Ρ‚ΡŒΠΈ. На самом Π΄Π΅Π»Π΅, Π²ΠΎ врСмя написания этой Π²ΠΎΡ‚ ΠΈΠ³Ρ€Ρ‹ Ρƒ мСня Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ ΠΈ Π·Π²ΡƒΠΊΠΈ наТатия Π½Π° экран. Ну ΠΈ ΠΏΠΎΠ»Π΅Π· я Π² справку … Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅ β†’

Java (язык программирования) — Java (programming language)

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования

Π―Π·Ρ‹ΠΊ программирования Java
ΠŸΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° : ΠΎΠ±Ρ‰ΠΈΠΉ , ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ (Π½Π° основС классов ), ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ , рСфлСксивный
РазработаноДТСймс Гослинг
Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Oracle Corporation et al.
Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появился23 мая 1995 Π³ . ; 25 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄Β ( 1995-05-23 )
Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ выпуск

Java SE 15/15 сСнтября 2020 Π³ . ; 2 мСсяца Π½Π°Π·Π°Π΄Β ( 2020-09-15 )

ΠŸΠ΅Ρ‡Π°Ρ‚Π½Π°Ρ дисциплина БтатичСский, ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, бСзопасный , ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Π΄Π΅ΠΆ , манифСст
Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.java, .class , .jar
Π’Π΅Π±-сайтoracle .com / java /
Под влияниСм
CLU , Simula67 , LISP , SmallTalk , Ada 83 , C ++ , C # , Eiffel , Mesa , Modula-3 , Oberon , Objective-C , UCSD Pascal , Object Pascal
Под влияниСм
Ада 2005 , BeanShell , C # , Chapel , Clojure , ECMAScript , Fantom , Gambas , Groovy , Hack , Haxe , J # , Kotlin , PHP , Python , Scala , Seed7 , Vala

Java — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования, основанный Π½Π° классах , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшС зависимостСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ . Π­Ρ‚ΠΎ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ (WORA), Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ скомпилированный ΠΊΠΎΠ΄ Java ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° всСх ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Java, Π±Π΅Π· нСобходимости пСрСкомпиляции. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Java ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° любой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Java (JVM) нСзависимо ΠΎΡ‚ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ . Бинтаксис Π² Java ΠΏΠΎΡ…ΠΎΠΆ Π½Π° C ΠΈ C ++ , Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ мСньшС Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² , Ρ‡Π΅ΠΌ любой ΠΈΠ· Π½ΠΈΡ…. Π‘Ρ€Π΅Π΄Π° выполнСния Java прСдоставляСт динамичСскиС возмоТности (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° срСды выполнСния), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ нСдоступны Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках. По Π΄Π°Π½Π½Ρ‹ΠΌ GitHub , ΠΏΠΎ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° 2019 Π³ΠΎΠ΄ Java Π±Ρ‹Π»Π° ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых популярных языков программирования , особСнно для ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрных Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π‘ΠΎΠΎΠ±Ρ‰Π°Π»ΠΎΡΡŒ ΠΎ 9 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Java Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ДТСймсом Гослингом Π² Sun Microsystems ( которая с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π° Oracle ) ΠΈ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° Π² 1995 Π³ΠΎΠ΄Ρƒ Π² качСствС основного ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Java Sun Microsystems . Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ ΠΈ эталонная рСализация компиляторов Java , Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ классов ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° Sun ΠΏΠΎ ΠΏΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ лицСнзиям . По ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° ΠΌΠ°ΠΉ 2007 Π³ΠΎΠ΄Π°, Π² соотвСтствии со спСцификациями Java Community Process , Sun ΠΏΠ΅Ρ€Π΅Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π»Π° Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ своих Java-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΏΠΎΠ΄ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ общСствСнной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GNU . Oracle ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Java HotSpot , ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ эталонной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ являСтся OpenJDK JVM, которая являСтся бСсплатным ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Eclipse IDE, ΠΈ являСтся JVM ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΡ‡Ρ‚ΠΈ для всСх дистрибутивов Linux.

ПослСдняя вСрсия — Java 15 , выпущСнная Π² сСнтябрС 2020 Π³ΠΎΠ΄Π°, с Java 11, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π² настоящСС врСмя вСрсиСй с долгосрочной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ (LTS), Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ 25 сСнтября 2018 Π³ΠΎΠ΄Π°; Oracle выпустила  послСднСС ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ для ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ вСрсии Java 8 LTS Π² январС 2019 Π³ΠΎΠ΄Π° для коммСрчСского использования, хотя Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠ½Π° ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Java 8 с общСдоступными обновлСниями для Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ использования ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π΄ΠΎ дСкабря 2020 Π³ΠΎΠ΄Π°. Π”Ρ€ΡƒΠ³ΠΈΠ΅ поставщики Π½Π°Ρ‡Π°Π»ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ -Π΄ΠΎΡ€ΠΎΠ³ΠΈΠ΅ сборки OpenJDK 8 ΠΈ 11, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ всС Π΅Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ обновлСния бСзопасности ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ обновлСния.

Oracle (ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅) Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ старыС вСрсии Java ΠΈΠ·-Π·Π° ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… рисков, связанных с Π½Π΅Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ бСзопасности. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Java 9, 10, 12 ΠΈ 13 большС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ, Oracle Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ своим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° послСднюю Π²Π΅Ρ€ΡΠΈΡŽ (Π² настоящСС врСмя Java 15) ΠΈΠ»ΠΈ выпуск LTS.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ

Π“Π΅Ρ€Ρ†ΠΎΠ³, талисман Π―Π²Ρ‹

ДТСймс Гослинг , Майк Π¨Π΅Ρ€ΠΈΠ΄Π°Π½ ΠΈ ΠŸΠ°Ρ‚Ρ€ΠΈΠΊ Нотон ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ языка Java Π² июнС 1991 Π³ΠΎΠ΄Π°. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Java Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° для ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ тСлСвидСния, Π½ΠΎ Π² Ρ‚ΠΎ врСмя ΠΎΠ½Π° Π±Ρ‹Π»Π° слишком ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΉ для индустрии Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ кабСльного тСлСвидСния. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ этот язык назывался Β« Π”ΡƒΠ±Β» ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΡƒΠ±Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рос ΠΏΠ΅Ρ€Π΅Π΄ офисом Гослинга. ПозТС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Green ΠΈ Π±Ρ‹Π» ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Java , ΠΎΡ‚ ΠΊΠΎΡ„Π΅ Java , ΠΊΠΎΡ„Π΅ ΠΈΠ· ИндонСзии . Гослинг Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Java с синтаксисом Π² стилС C / C ++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π±Ρ‹ Π·Π½Π°ΠΊΠΎΠΌ систСмным ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ программистам.

Sun Microsystems выпустила ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Java 1.0 Π² 1996 Π³ΠΎΠ΄Ρƒ. Она ΠΎΠ±Π΅Ρ‰Π°Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Write Once, Run Anywhere ( WORA ), обСспСчивая бСсплатноС врСмя выполнСния Π½Π° популярных ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… . Достаточно бСзопасный ΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ настраиваСмой Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΎΠ½ позволял ограничСния доступа ΠΊ сСти ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌ. ВскорС Π² основныС Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Java-Π°ΠΏΠΏΠ»Π΅Ρ‚Ρ‹ Π½Π° Π²Π΅Π±-страницах, ΠΈ Java быстро стала популярной. Java 1.0 компилятор Π±Ρ‹Π» пСрСписан Π½Π° Java с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Артур Π²Π°Π½ Π₯ΠΎΡ„Ρ„ строго ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ спСцификации Java 1.0 языка. Π‘ появлСниСм Java 2 (ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ J2SE 1.2 Π² Π΄Π΅ΠΊΠ°Π±Ρ€Π΅ 1998–1999 Π³Π³.) Π’ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях Π±Ρ‹Π»ΠΎ создано нСсколько ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. J2EE Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ API-интСрфСйсы для ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² сСрвСрных срСдах, Π° J2ME Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ API-интСрфСйсы, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΡΡ‚ΠΎΠ»ΡŒΠ½Π°Ρ вСрсия Π±Ρ‹Π»Π° ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π° Π² J2SE. Π’ 2006 Π³ΠΎΠ΄Ρƒ Π² ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹Ρ… цСлях Sun ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»Π° Π½ΠΎΠ²Ρ‹Π΅ вСрсии J2 Π² Java EE , Java ME ΠΈ Java SE соотвСтствСнно.

Π’ 1997 Π³ΠΎΠ΄Ρƒ Sun Microsystems ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ Π² ΠΎΡ€Π³Π°Π½ стандартизации ISO / IEC JTC 1, Π° ΠΏΠΎΠ·ΠΆΠ΅ ΠΈ Π² Ecma International, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Java, Π½ΠΎ вскорС ΠΎΡ‚ΠΊΠ°Π·Π°Π»Π°ΡΡŒ ΠΎΡ‚ этого процСсса. Java остаСтся стандартом Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ , управляСмым Ρ‡Π΅Ρ€Π΅Π· Java Community Process . Π’ своС врСмя Sun сдСлала Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ своих Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Java доступными бСсплатно, нСсмотря Π½Π° статус ΠΈΡ… ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния . Sun ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Π΄ΠΎΡ…ΠΎΠ΄ ΠΎΡ‚ Java Π·Π° счСт ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΉ Π½Π° спСциализированныС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Java Enterprise System.

13 ноября 2006 Π³. Sun выпустила Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ своСй Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java (JVM) ΠΊΠ°ΠΊ бСсплатноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ (FOSS) Π² соотвСтствии с условиями Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ общСствСнной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ GNU (GPL). 8 мая 2007 Π³ΠΎΠ΄Π° Sun Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π° процСсс, сдСлав вСсь основной ΠΊΠΎΠ΄ своСй JVM доступным Π½Π° условиях

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ динамичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ javax. tools

Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ класса javax.tools.JavaCompiler для построСния динамичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Дэвид. Π”ΠΆ. БиСсак
ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ 16.11.2009

ΠŸΠ°ΠΊΠ΅Ρ‚ javax. tools, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² Java SE 6 ΠΊΠ°ΠΊ стандартный API для компиляции исходного ΠΊΠΎΠ΄Π° Java, позволяСт Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ статичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ прСдставляСт ΠΎΠ±Π·ΠΎΡ€ основных классов ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для компиляции исходного ΠΊΠΎΠ΄Π° Java ΠΈΠ· Java-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² String, StringBuffer ΠΈΠ»ΠΈ CharSequence вмСсто Ρ„Π°ΠΉΠ»ΠΎΠ². Π—Π°Ρ‚Π΅ΠΌ этот фасад ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для построСния ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ прилоТСния для построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‡ΠΈΡΠ»ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ y = f(x) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ любого ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ числового Java-выраТСния. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΡƒΠ³Ρ€ΠΎΠ·Ρ‹ бСзопасности, связанныС с динамичСской компиляциСй исходного ΠΊΠΎΠ΄Π°, ΠΈ способы для устранСния этих рисков.

ИдСя Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Java-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π½Π΅ Π½ΠΎΠ²Π°, ΠΈ сущСствуСт нСсколько каркасов, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ВСхнология сСрвСрных Java-страниц (JavaServer Pages — JSP) Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Java Enterprise Edition (Java EE) – это ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ динамичСского каркаса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Java-классы. Вранслятор JSP трансформируСт .jsp Ρ„Π°ΠΉΠ»Ρ‹ Π² Java-сСрвлСты (servlets), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ JSP-процСссором ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² Java EE-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Java-сСрвлСтов. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ часто выполняСтся прямым Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ компилятора javac, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ установлСнного ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (Java Development Kit — JDK), ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ класса com.sun.tools.javac.Main, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² JAR-Π°Ρ€Ρ…ΠΈ

БистСмы сборки с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Java

Ant

Ant — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ инструмСнт для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ процСссов сборки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ XML для описания процСсса сборки ΠΈ Π΅Π³ΠΎ зависимостСй.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ant

Maven

Maven — это инструмСнт управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Java ΠΈ ΠΈΡ… понимания. Maven основан Π½Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (POM) Π² Ρ‚ΠΎΠΌ смыслС, Ρ‡Ρ‚ΠΎ всС Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹, созданныС Maven, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΠΈ с Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ модСлью для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π‘Π±ΠΎΡ€ΠΊΠΈ, докумСнтация, исходныС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈ пСрСкрСстныС ссылки Π½Π° источники ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ вашим POM. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список возмоТностСй Maven.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Maven

Rant

Rant ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Remote Ant. Π­Ρ‚ΠΎ распрСдСлСнная систСма сборки, которая позволяСт Ρ„Π°ΠΉΠ»Ρƒ сборки Ant Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сборки Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² случаС ΠΈΡ… возникновСния.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ запросу

Invicta

Invicta — это инструмСнт управлСния сборкой с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ.Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ простыС Ρ„Π°ΠΉΠ»Ρ‹ опрСдСлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΠ½ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠΎΡ‰Π½Ρ‹Π΅ сцСнарии сборки (Apache ANT), скрывая ΠΏΡ€ΠΈ этом ΠΈΡ… ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Invicta

JMK

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ основано Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ make, которая являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° систСм Unix, Π½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ написания нСзависимой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ JMK

Savant

Savant — это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ популярной систСмы сборки ant ΠΎΡ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹ Apache.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Savant

ΠšΡ€ΡƒΠΈΠ·-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ

CruiseControl — это основа для Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ процСсса сборки. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅, Ant ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ инструмСнты управлСния вСрсиями, Π½ΠΎ Π½Π΅ ограничиваСтся ΠΈΠΌΠΈ. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ΡΡ Π²Π΅Π±-интСрфСйс для просмотра свСдСний ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ сборках.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΊΡ€ΡƒΠΈΠ·-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŽ

Bee

Bee — это инструмСнт сборки Π½Π° основС Java. Π‘ΠΈ унаслСдовал Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Make.Bee прСдоставляСт большС конструкций Π½Π° языкС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, поэтому ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для программирования сцСнариСв. Он ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ, Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ DTD ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Ρ‹ Bee.

Go To Bee

LuntBuild

LuntBuild — это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ управлСния сборкой. ΠΠ΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΡƒΡŽ сборку ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· чистый Π²Π΅Π±-интСрфСйс. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹Π΅ сборки Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠ°ΠΊ поиск, катСгоризация, ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, исправлСниС, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚. Π”.Он Ρ‚Π°ΠΊΠΆΠ΅ дСйствуСт ΠΊΠ°ΠΊ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² сборки для всСй вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ LuntBuild

CPMake

CPMake — это инструмСнт сборки, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° GNU make, Π³Π΄Π΅ ΠΎΠ½ позволяСт зависимостям Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ. Π€Π°ΠΉΠ»Ρ‹ сборки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ написаны Π»ΠΈΠ±ΠΎ Π² BeanShell, Π»ΠΈΠ±ΠΎ Π² сцСнарии Jython.
CPMake ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ зависимостСй для Ρ„Π°ΠΉΠ»ΠΎΠ² Java ΠΈ C / C ++.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ CPMake

JAM

JAM состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° сцСнариСв Ant, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для выполнСния ΠΎΠ±Ρ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡ сборки Java / J2EE, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ компиляция, ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, тСстированиС, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСрвСром ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ J2EE.JAM сочСтаСт высокоуровнСвоС описаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Maven ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ рСпозитория (Ρ‡Π΅Ρ€Π΅Π· мост Maven-to-Ant) с Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌΠΈ возмоТностями Ant. Бобирая ΠΌΠΎΠ΄ΡƒΠ»ΠΈ JAM, ΠΌΠΎΠΆΠ½ΠΎ быстро ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слоТныС нСзависимыС ΠΎΡ‚ IDE сцСнарии сборки. JAM ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сСрвСры ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ J2EE, Π²Ρ‹Π·ΠΎΠ² XDoclet, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС JUnit, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ тСстированиС Apache Cactus, Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ΄Π° Π½Π° основС UML ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ JAM

GenJar

GenJar — это спСциализированная Π·Π°Π΄Π°Ρ‡Π° Ant, которая создаСт Ρ„Π°ΠΉΠ»Ρ‹ jar Π½Π° основС зависимостСй классов, Π° Π½Π΅ просто содСрТимого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ GenJar

Ivy

Ivy — это бСсплатный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ зависимостСй Π½Π° основС Java с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ функциями, ΠΊΠ°ΠΊ Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ зависимости, интСграция с ΠΌΡƒΡ€Π°Π²ΡŒΡΠΌΠΈ, ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с рСпозиториями maven, нСпрСрывная интСграция, ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ HTML ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ivy

Antmod

Antmod — это инструмСнт управлСния сборкой, выпуском ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ. Π•Π³ΠΎ рСализация прСдставляСт собой Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π½Π° основС Ant для извлСчСния, управлСния вСрсиями, построСния ΠΈ развСртывания ΠΊΠΎΠ΄Π° Π² Subversion ΠΈΠ»ΠΈ CVS ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Он стандартизируСт Ρ„Π°ΠΉΠ»Ρ‹ сборки для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Java ΠΈ прСдоставляСт ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ сборки для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Он Ρ‚Π°ΠΊΠΆΠ΅ стандартизируСт Ρ‚Π΅Π³ΠΈ ΠΈ вСтвлСния ΠΊΠ°ΠΊ для CVS, Ρ‚Π°ΠΊ ΠΈ для Subversion, Π° Π΅Π³ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ Java. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускоряСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Java, способствуСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ использованию ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Java ΠΈ стандартизируСт Ρ†ΠΈΠΊΠ» сборки-тСстирования-выпуска.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Antmod

Continuum

Continuum — это простой Π² использовании сСрвСр Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ для создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° основС Java со встроСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Maven 2, Maven 1, Ant ΠΈ сцСнариСв ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Continuum

Autojar

Autojar ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ jar минимального Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ собствСнныС классы, внСшниС Π°Ρ€Ρ…ΠΈΠ²Ρ‹ ΠΈ Ρ‚. Π”. Он начинаСтся с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… классов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°ΠΏΠΏΠ»Π΅Ρ‚Π°), выполняСт рСкурсивный поиск Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ для ссылок Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ эти классы ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ² ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ классы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π°ΠΏΠΏΠ»Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ прилоТСния нСзависимыми ΠΎΡ‚ установлСнных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ autojar ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ… Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСсурсы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ), ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΡ… ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.
Π₯отя autojar Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ классы Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ динамичСски, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Class.forName () ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Ρ‚ΡŒ ΠΎΠ± этом. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях (постоянноС имя класса) ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°ΠΆΠ΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ классы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹, ΠΈ автоматичСски Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Autojar

Jar Jar Links

Jar Jar Links — это ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, которая позволяСт Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Java ΠΈ Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² ваш собствСнный дистрибутив.Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎ Π΄Π²ΡƒΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:
* Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» jar Π±Π΅Π· Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй.
* Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ваша Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с зависимостями Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Jar Бсылки Jar

Hudson

Hudson отслСТиваСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ созданиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ задания, выполняСмыС cron. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, Π½Ρ‹Π½Π΅ΡˆΠ½ΠΈΠΉ Π₯адсон фокусируСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… Ρ€Π°Π±ΠΎΡ‚Π°Ρ…:
1.ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎΠ΅ созданиС / тСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ CruiseControl ΠΈΠ»ΠΈ DamageControl. Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅, Hudson прСдоставляСт ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π² использовании Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ систСму Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ свСТСй сборки. АвтоматичСская нСпрСрывная сборка ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.
2. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ выполнСния Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π·Π°Π΄Π°Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ задания cron ΠΈ задания procmail, Π΄Π°ΠΆΠ΅ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ машинС. НапримСр, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cron всС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅, — это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ элСктронныС письма, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄, ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ… ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ сломались.Hudson сохраняСт эти Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ позволяСт Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Hudson

Proximity

Proximity (px-core) — это ΠΎΠ±Ρ‰ΠΈΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈ ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ возмоТностями, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ индСксированиС. ΠœΠΎΠ΄ΡƒΠ»ΡŒ Px-Core управляСтся привязками Maven (px-core-maven) для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ повСдСния прилоТСния Maven Proxy.
Π‘Π»ΠΈΠ·ΠΎΡΡ‚ΡŒ дСйствуСт Π³Π΄Π΅-Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ http-proxy ΠΈ proactive-mirror. Proximity — это Π½Π΅ HTTP-прокси. Одно ΠΈΠ· основных Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ — это Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Java, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ слуТит прокси-сСрвСром maven Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ сСти нашСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.Π§Ρ‚ΠΎ касаСтся ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ исходящСго Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° (Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ maven), агрСгирования большСго количСства Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² (ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°) с использованиСм Π² качСствС ΠΎΠ΄Π½ΠΎΠ³ΠΎ логичСского рСпозитория, Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² maven, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² ibiblio (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, коммСрчСскиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, J2EE Jars ΠΈ Ρ‚. Π”.).

Go To Proximity

ОБ Anthill

ОБ Anthill — это сСрвСр управлСния сборкой.
Anthill позволяСт нСскольким ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вмСстС ΠΈ постоянно ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ
послСдняя сборка с измСнСниями, внСсСнными всСми программистами, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.Anthill выполняСт ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· исходного рСпозитория послСднСй вСрсии
project ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сборкой ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ сборки.
Π—Π°Ρ‚Π΅ΠΌ Anthill обновляСт сайт интрасСти ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, добавляя Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹ ΠΈΠ· послСднСй сборки.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ОБ Anthill

Ant Hill

Ant Hill — это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ant, прСдназначСнная для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ†Π΅Π»Π΅ΠΉ сборки ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ XMPP (Jabber).
Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ, Ant Hill прСдоставляСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ†Π΅Π»ΠΈ.ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ / сСрвСр позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° кластСрах ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ большого количСства машин.
Ant Hill Π±Ρ‹Π» написан Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΌ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.
Ant Hill прСдоставляСт ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ распространСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ant Hill

Schmant

Schmant — это инструмСнт сборки для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ². Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ сцСнариСв Π² Java 6 для запуска сцСнариСв сборки, поэтому сцСнарии сборки ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ написаны Π½Π° любом ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΌ языкС сцСнариСв.Schmant прСдоставляСт Π½Π°Π±ΠΎΡ€ Π·Π°Π΄Π°Ρ‡ для ΠΎΠ±Ρ‰ΠΈΡ… Π·Π°Π΄Π°Ρ‡ сцСнария сборки, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ компиляция ΠΊΠΎΠ΄Π° Java, созданиС Ρ„Π°ΠΉΠ»ΠΎΠ² JAR, экспорт ΠΊΠΎΠ΄Π° ΠΈΠ· Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² Subversion ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ подстановки тСкста Π² Ρ„Π°ΠΉΠ»Π°Ρ…. Schmant стрСмится Π±Ρ‹Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ совмСстимым ΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ простым Π² использовании, Ρ‡Π΅ΠΌ Apache Ant.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Schmant

APB

APB — это простая, Π½ΠΎ мощная систСма сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, которая наслСдуСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ ΠΎΡ‚ Ant ΠΈ Maven, ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ использования слоТных Ρ„Π°ΠΉΠ»ΠΎΠ² XML для опрСдСлСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. .ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° выполняСтся Π½Π° Java, поэтому Ρƒ вас Π΅ΡΡ‚ΡŒ всС возмоТности Java, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования вашСй любимой срСды IDE для рСдактирования Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ APB прСдоставляСт «ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ»:
* ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° основС ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ с Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ для размСщСния вашСго ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.
* Π‘Π±ΠΎΡ€ΠΊΠΈ Π½Π° основС ΠΌΠΎΠ΄Π΅Π»ΠΈ: APB ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° основС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.
* Полная Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ с использованиСм Java
* Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями
* ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΡƒ ΠΈ тСстированиС.* ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° покрытия Π²ΠΎ врСмя тСстирования
* ГСнСрация Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
* ГСнСрация Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° для ΠΎΠ±Ρ‰ΠΈΡ… IDE (Π² настоящСС врСмя Intellij Idea)
* Π—Π°Π΄Π°Ρ‡ΠΈ Ant для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² APB Π² Π·Π°Ρ€ΡƒΠ±Π΅ΠΆΠ½Ρ‹Π΅ контСксты.
* Π’Ρ‹Π·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ APB

Jenkins CI

Jenkins CI, Ρ€Π°Π½Π΅Π΅ извСстная ΠΊΠ°ΠΊ \ «Hudson Labs \».
Jenkins отслСТиваСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π·Π°Π΄Π°Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ созданиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ задания, выполняСмыС cron. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, Π½Ρ‹Π½Π΅ΡˆΠ½ΠΈΠΉ ДТСнкинс фокусируСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… Ρ€Π°Π±ΠΎΡ‚Π°Ρ…:
ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎΠ΅ созданиС / тСстированиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ CruiseControl ΠΈΠ»ΠΈ DamageControl. ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, Jenkins прСдоставляСт ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π² использовании Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ систСму Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, которая ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ свСТСй сборки. АвтоматичСская нСпрСрывная сборка ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.
ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ выполнСния Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π·Π°Π΄Π°Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Π½ΠΈΠΉ cron ΠΈ procmail, Π΄Π°ΠΆΠ΅ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ машинС. НапримСр, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ cron всС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅, — это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ элСктронныС письма, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‚ Π²Ρ‹Π²ΠΎΠ΄, ΠΈ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡ… ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ сломались.ДТСнкинс сохраняСт эти Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ позволяСт Π²Π°ΠΌ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ.

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Jenkins CI

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ исходными Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ классов (Π£Ρ‡Π΅Π±Π½ΠΈΠΊΠΈ Java β„’> Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ языка Java> ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹)

МногиС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Java ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° иСрархичСскиС Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы для управлСния исходными Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ классов, хотя БпСцификация языка Java этого Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚. БтратСгия ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ.

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ исходный ΠΊΠΎΠ΄ для Ρ‚ΠΈΠΏΠ° класса, интСрфСйса, пСрСчислСния ΠΈΠ»ΠΈ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π² тСкстовый Ρ„Π°ΠΉΠ», имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся простым ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚ΠΈΠΏΠ°, Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ — .java . НапримСр:

// Π² Ρ„Π°ΠΉΠ»Π΅ Rectangle.java
пакСтная Π³Ρ€Π°Ρ„ΠΈΠΊΠ°;
public class Rectangle {
   ...
}
 

Π—Π°Ρ‚Π΅ΠΌ помСститС исходный Ρ„Π°ΠΉΠ» Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ‚ΠΈΠΏ:

..... \ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° \ Rectangle.java
 

ПолноС имя Ρ‡Π»Π΅Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ имя ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Π² Microsoft Windows ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ обратная косая Ρ‡Π΅Ρ€Ρ‚Π° раздСлитСля ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² (для UNIX ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ косая Ρ‡Π΅Ρ€Ρ‚Π°).

  • имя класса Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ
  • ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ graphics \ Rectangle.java

Как Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎ соглашСнию компания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ своС ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ для ΠΈΠΌΠ΅Π½ своих ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Компания Example, Ρ‡ΡŒΠ΅ имя Π΄ΠΎΠΌΠ΅Π½Π° Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ — example. com , Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ всСм ΠΈΠΌΠ΅Π½Π°ΠΌ своих ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ com.example . ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° соотвСтствуСт ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ.Π˜Ρ‚Π°ΠΊ, Ссли Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Example Π±Ρ‹Π» ΠΏΠ°ΠΊΠ΅Ρ‚ com.example.graphics , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТал исходный Ρ„Π°ΠΉΠ» Rectangle.java , ΠΎΠ½ содСрТался Π±Ρ‹ Π² сСрии ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π²Ρ€ΠΎΠ΄Π΅ этого:

.... \ com \ example \ graphics \ Rectangle.java
 

Когда Π²Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ исходный Ρ„Π°ΠΉΠ», компилятор создаСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π½Π΅ΠΌ Ρ‚ΠΈΠΏΠ°. Π‘Π°Π·ΠΎΠ²ΠΎΠ΅ имя Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° — это имя Ρ‚ΠΈΠΏΠ° с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .class . НапримСр, Ссли исходный Ρ„Π°ΠΉΠ» Ρ‚Π°ΠΊΠΎΠΉ

// Π² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ΅.Ρ„Π°ΠΉΠ» java
ΠΏΠ°ΠΊΠ΅Ρ‚ com.example.graphics;
public class Rectangle {
      . . .
}

class Helper {
      . . .
}
 

, Ρ‚ΠΎ скомпилированныС Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ располоТСны ΠΏΠΎ адрСсу:

<ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²> \ com \ example \ graphics \ Rectangle.class
<ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²> \ com \ example \ graphics \ Helper. class
 

Как ΠΈ исходныС Ρ„Π°ΠΉΠ»Ρ‹ .java , скомпилированныС Ρ„Π°ΠΉΠ»Ρ‹ .class Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² сСрии ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΡ… имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°.Однако ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ .class Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΏΡƒΡ‚Π΅ΠΌ ΠΊ исходным Ρ„Π°ΠΉΠ»Π°ΠΌ .java . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ исходного ΠΊΠΎΠ΄Π° ΠΈ классов ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 \ sources \ com \ example \ graphics \ Rectangle.java

<ΠΏΡƒΡ‚ΡŒ_Π΄Π²Π°> \ классы \ ΠΊΠΎΠΌ \ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ \ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° \ Rectangle.class
 

Π‘Π΄Π΅Π»Π°Π² это, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ classes Π΄Ρ€ΡƒΠ³ΠΈΠΌ программистам, Π½Π΅ раскрывая свои источники. Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ исходными Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ классов Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ компилятор ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Java (JVM) ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΉΡ‚ΠΈ всС Ρ‚ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ classes , \ classes , называСтся ΠΏΡƒΡ‚Π΅ΠΌ class path ΠΈ устанавливаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСмной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ CLASSPATH . И компилятор, ΠΈ JVM ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ вашим Ρ„Π°ΠΉΠ»Π°ΠΌ .class , добавляя имя ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΊ ΠΏΡƒΡ‚ΠΈ ΠΊ классу. НапримСр, Ссли

— это ваш ΠΏΡƒΡ‚ΡŒ ΠΊ классу, Π° имя ΠΏΠ°ΠΊΠ΅Ρ‚Π° —

, Π·Π°Ρ‚Π΅ΠΌ компилятор ΠΈ JVM ΠΈΡ‰ΡƒΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ² .class Π²

 \ classes \ com \ example \ graphics.

ΠŸΡƒΡ‚ΡŒ ΠΊ классу ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ нСсколько ΠΏΡƒΡ‚Π΅ΠΉ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой (Windows) ΠΈΠ»ΠΈ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ (UNIX). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ компилятор ΠΈ JVM ΠΈΡ‰ΡƒΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ Ρ„Π°ΠΉΠ» JAR, содСрТащий классы ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Java, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ эти ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ автоматичСски находятся Π² ΠΏΡƒΡ‚ΠΈ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ классу.

Установка систСмной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ CLASSPATH

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ CLASSPATH , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² Windows ΠΈ UNIX (ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Bourne):

Π’ Windows: C: \> ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ CLASSPATH
Π’ UNIX:% echo $ CLASSPATH
 

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ CLASSPATH , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Π’ Windows: C: \> установитС CLASSPATH =
Π’ UNIX:% unset CLASSPATH; экспорт ΠšΠ›ΠΠ‘Π‘Π
 

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ CLASSPATH , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€):

Π’ Windows: C: \> установитС CLASSPATH = C: \ users \ george \ java \ classes
Π’ UNIX:% CLASSPATH = / home / george / java / classes; экспорт ΠšΠ›ΠΠ‘Π‘Π
 

20 ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ программисты Π½Π° Java

Одна ΠΈΠ· Ρ‡Π΅Ρ€Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΈ ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Java — ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Π΅ знания API, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ JDK ΠΈ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π― ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ» ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ API, особСнно послС прочтСния Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Java 3rd EditionΒ», Π³Π΄Π΅ Π”ΠΆΠΎΡˆΡƒΠ° Π‘Π»ΠΎΡ… совСтовал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ API для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ.

Π­Ρ‚ΠΎΡ‚ совСт ΠΈΠΌΠ΅Π» для мСня смысл ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π°ΡŽΡ‚ΡΡ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΈ Π²Π°ΠΆΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ API, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. Однако я Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ, Ρ‚.Π΅.Π³Ρ€Π°ΠΌΠΌ. Spring ΠΈ Hibernate, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ довольно Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстны ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ спСцифичСскиС особСнности.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, я Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для повсСднСвных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ², Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Log4j, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° JSON, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Jackson, ΠΈ API-интСрфСйсы ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ JUnit ΠΈ Mockito. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈΠ±ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ JAR-Ρ„Π°ΠΉΠ»Ρ‹ этих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π² ΠΏΡƒΡ‚ΡŒ ΠΊ классам вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π»ΠΈΠ±ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Maven для управлСния зависимостями.

Когда Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Maven для управлСния зависимостями, ΠΎΠ½ автоматичСски Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ зависят, Ρ‡Ρ‚ΠΎ называСтся Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ.

НапримСр, Ссли Π²Ρ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Spring Framework, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ JAR-Ρ„Π°ΠΉΠ»Ρ‹, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит Spring, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Log4j.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ ΠΎΡΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ, Π½ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсии зависимых JAR-Ρ„Π°ΠΉΠ»ΠΎΠ² — большая головная боль. Если Ρƒ вас Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ вСрсии JAR, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ClassNotFoundException, NoClassDefFoundError ΠΈΠ»ΠΈ UnsupportedClassVersionError.

20 ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для программистов Π½Π° Java

Π’ΠΎΡ‚ моя коллСкция Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Java ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своих прилоТСниях для выполнСния мноТСства ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Java Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с этим, ΠΈ Π² этом вСсь смысл Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Если Ρƒ вас Π΅ΡΡ‚ΡŒ идСя, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅.

1. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ²

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΎΡ‡Π΅Π½ΡŒ распространСны, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ Π²Π°ΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ Π²Π΅Ρ‰ΡŒΡŽ для сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ JDK поставляСтся со своСй собствСнной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ², Π΅ΡΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΡˆΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€.Π³Ρ€Π°ΠΌΠΌ. Log4j, SLF4j ΠΈ LogBack.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Java Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Турналирования ΠΈ Π·Π½Π°Ρ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ использованиС SLF4j Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ простой Log4j. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΏΠΎΡ‡Π΅ΠΌΡƒ, я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ мою ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ Π½Π° Ρ‚Ρƒ ΠΆΠ΅ Ρ‚Π΅ΠΌΡƒ.

2. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° JSON

Π’ соврСмСнном ΠΌΠΈΡ€Π΅ Π²Π΅Π±-сСрвисов ΠΈ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π²Π΅Ρ‰Π΅ΠΉ JSON стал основным ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° сСрвСр. Они Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ XML ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ способ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ нСзависимым ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ способом.

К соТалСнию, Π² JDK Π½Π΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ JSON. Но Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΊΠ°ΠΊ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ сообщСния JSON, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Jackson ΠΈ Gson.

Π’Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Java Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌ хотя Π±Ρ‹ с ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· этих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ ДТСксонС ΠΈ JSON, я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· JSON с курсом Java API ΠΎΡ‚ Udemy.

3. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС — самая ваТная Π²Π΅Ρ‰ΡŒ, которая ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ срСднСго Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ.ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°ΠΌ часто Π΄Π°ΡŽΡ‚ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΈΠ΅ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠΈΡˆΡƒΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты, Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнным ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΈΠ΅ΠΌ для избСгания ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования являСтся отсутствиС ΠΎΠΏΡ‹Ρ‚Π° ΠΈ Π·Π½Π°Π½ΠΈΠΉ ΠΎ популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ JUnit, Mockito ΠΈ PowerMock.

Π£ мСня Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»ΡŒ Π² 2018 Π³ΠΎΠ΄Ρƒ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ свои знания ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ тСстирования, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ JUnit 5, Cucumber, Robot framework ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ….

Π― Ρ‚Π°ΠΊΠΆΠ΅ записался Π½Π° ускорСнный курс JUnit ΠΈ Mockito Π² Π£Π΄Π΅ΠΌΠΈ. Π”Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с JUnit ΠΈ основами ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ свои собствСнныС знания.

4. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Java доступны нСсколько Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Apache Commons ΠΈ Google Guava. Π― всСгда Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽ эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² свои ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ мноТСство Π·Π°Π΄Π°Ρ‡.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ сказал Π”ΠΆΠΎΡˆΡƒΠ° Π‘Π»ΠΎΡ… Π² Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ JavaΒ», Π½Π΅Ρ‚ смысла ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ колСса Π·Π°Π½ΠΎΠ²ΠΎ. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ врСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ свои собствСнныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Google Guava ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Apache Commons.

5. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ HTTP

Π§Ρ‚ΠΎ ΠΌΠ½Π΅ Π½Π΅ нравится Π² JDK, Ρ‚Π°ΠΊ это отсутствиС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ HTTP. Π₯отя Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ HTTP-соСдинСниС, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ классы Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ java.net , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Apache HttpClient ΠΈ HttpCore, Π½Π΅ Ρ‚Π°ΠΊ просто ΠΈΠ»ΠΈ просто.

Π₯отя JDK 9 обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ HTTP 2.0 ΠΈ Π»ΡƒΡ‡ΡˆΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° HTTP, я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ всСм Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Java ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с популярными клиСнтскими Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ HTTP, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ HttpClient ΠΈ HttpCore.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ этот пост Β«Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² Java 9 — ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ HTTP 2 Π² JDK 9.

6. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° XML

БущСствуСт мноТСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° XML, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Xerces, JAXB, JAXP, Dom4j ΠΈ Xstream. Xerces2 — это Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстимых Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² XML Π² сСмСйствС Apache Xerces.Π­Ρ‚Π° новая вСрсия Xerces прСдставляСт собствСнный интСрфСйс Xerces (XNI), ΠΏΠΎΠ»Π½ΡƒΡŽ структуру для создания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ парсСра, которая являСтся Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ ΠΈ простой Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

БинтаксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Apache Xerces2 являСтся эталонной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ XNI, Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ синтаксичСскиС Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ написаны с использованиСм собствСнного интСрфСйса Xerces. Dom4j — Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° гибкая срСда XML для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Java. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ синтаксичСском Π°Π½Π°Π»ΠΈΠ·Π΅ XML Π² Java, я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-курс Java Web Services ΠΈ XML Π½Π° Udemy.

7. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ чтСния Excel

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€ΡŒΡ‚Π΅, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π΅Ρ‚ — всС Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ прилоТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π² Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Microsoft Office. МногиС прилоТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности для экспорта Π΄Π°Π½Π½Ρ‹Ρ… Π² Excel, ΠΈ Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΈΠ· прилоТСния Java, Π²Π°ΠΌ понадобится Apache POI API.

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ богатая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая позволяСт Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ XLS ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Java. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ эту ссылку для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° чтСния Ρ„Π°ΠΉΠ»Π° Excel Π² основном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Java.

8. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°

Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°ΠΌΠΈ, Ρ‚ΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°.

Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, созданный ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. НСкоторыС ΠΈΠ· популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Π² ΠΌΠΈΡ€Π΅ Java — это javassist ΠΈ Cglib Nodep.

Javassist (ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ JAVA) ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ манипуляции с Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ Java. Π­Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° классов для рСдактирования Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠ² Π² Java.ASM — Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° полСзная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для рСдактирования Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°. Если Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ, я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Java-программисты, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π½Π΅ΠΌ большС.

9. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡƒΠ»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

Если Π²Ρ‹ взаимодСйствуСтС с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· прилоТСния Java, Π½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡƒΠ»Π° соСдинСний с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π½Π°Ρ‡ΠΈΡ‚, Π²Π°ΠΌ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ созданиС соСдинСний с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ врСмя выполнСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ замСдляСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ запросов, всСгда рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ соСдинСний с Π‘Π”.НСкоторыС ΠΈΠ· популярных — это Commons Pool ΠΈ DBCP.

Π’ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдоставляСт Π²Π΅Π±-сСрвСр, Π½ΠΎ Π² основных Java-прилоТСниях Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡƒΠ»Π° соСдинСний Π² свой ΠΏΡƒΡ‚ΡŒ ΠΊ классам, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ» соСдинСний с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ JDBC ΠΈ ΠΏΡƒΠ»Π΅ соСдинСний Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° курсы JSP, Servlet ΠΈ JDBC для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Π² Udemy.

10. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями

Подобно вСдСнию ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±ΠΌΠ΅Π½ сообщСниями Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΎΠ±Ρ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Java прСдоставляСт JMS ΠΈΠ»ΠΈ слуТбу ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Java, которая Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ JDK. Для этого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ jms. jar .

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ сторонниС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Tibco RV, Ρ‚ΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сторонний JAR — tibrv.jar — Π² ΠΏΡƒΡ‚ΠΈ ΠΊ классам вашСго прилоТСния.

11. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PDF

Подобно Microsoft Excel, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ PDF — Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚.Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ PDF Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, экспорт Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Ρ‹ PDF, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ iText ΠΈ Apache FOP.

Оба ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с PDF, Π½ΠΎ iText Π±ΠΎΠ³Π°Ρ‡Π΅ ΠΈ Π»ΡƒΡ‡ΡˆΠ΅. Π‘ΠΌ. Π—Π΄Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ iText.

12. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Π”ΠΎ Java 8 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ JDK ΠΈΠΌΠ΅Π»ΠΈ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ нСдостатков, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΈ потокобСзопасными, нСизмСняСмыми ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ошибкам. МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Java полагались Π½Π° JodaTime для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ своих Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π΄Π°Ρ‚Π΅ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Начиная с JDK 8, Π½Π΅Ρ‚ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Joda, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ всю эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² Π½ΠΎΠ²ΠΎΠΌ API Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ JDK 8, Π½ΠΎ Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² Π±ΠΎΠ»Π΅Π΅ старой вСрсии Java, Ρ‚ΠΎ JodaTime стоит ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Π½ΠΎΠ²ΠΎΠΌ API Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ курс Β«Π§Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π² Java 8Β» Π½Π° Udemy. Он Π΄Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ всСх Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Java 8, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ API Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

13. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ JDK ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ³Π°Ρ‚ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ большС возмоТностСй, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Apache Commons, ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Goldman Sachs, ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Google ΠΈ Trove.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Trove особСнно ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° обСспСчиваСт высокоскоростныС рСгулярныС ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ для Java.

FastUtil — Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ API. Он Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Java Collections Framework, прСдоставляя сопоставлСния, Π½Π°Π±ΠΎΡ€Ρ‹, списки ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² с нСбольшим объСмом памяти, быстрым доступом ΠΈ вставкой; ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт большиС (64-Π±ΠΈΡ‚Π½Ρ‹Π΅) массивы, Π½Π°Π±ΠΎΡ€Ρ‹ ΠΈ списки с быстрыми ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ классами Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° для Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… ΠΈ тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ².

14. API элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹

Π€Π°ΠΉΠ» javax.mail ΠΈ Apache Commons Email ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ API для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ с Java. Он построСн Π½Π° основС JavaMail API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ·Π²Π°Π½ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ.

15. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° HTML

Подобно JSON ΠΈ XML, HMTL — Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ распространСнный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΈΠ· нас приходится ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Ρƒ нас Π΅ΡΡ‚ΡŒ JSoup, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с HTML Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Java.

JSoup ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π° HTML, Π½ΠΎ ΠΈ для создания HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Он прСдоставляСт ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ API для извлСчСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… с использованиСм Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² DOM, CSS ΠΈ jquery-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ….JSoup Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ WHATWG HTML5 ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ HTML Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ DOM, Ρ‡Ρ‚ΠΎ ΠΈ соврСмСнныС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹.

16. ΠšΡ€ΠΈΠΏΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΊΠΎΠ΄Π΅ΠΊΠ° Apache Commons содСрТит простой ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Ρ‹ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Base64 ΠΈ Hexadecimal.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этим ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°ΠΌ ΠΈ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Π°ΠΌ, ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ фонСтичСского кодирования.

17. ВстроСнная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… SQL

МнС ΠΎΡ‡Π΅Π½ΡŒ нравятся Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ h3, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Java.Они ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ подходят для тСстирования Π²Π°ΡˆΠΈΡ… сцСнариСв SQL ΠΈ запуска ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½Π° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…. Однако h3 — Π½Π΅ СдинствСнная Π‘Π”, Ρƒ вас Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Apache Derby ΠΈ HSQL Π½Π° Π²Ρ‹Π±ΠΎΡ€.

18. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ устранСния Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ JDBC

БущСствуСт нСсколько Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ JDBC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, P6spy.

Π­Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая позволяСт бСспрСпятствСнно ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· измСнСния ΠΊΠΎΠ΄Π° прилоТСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для рСгистрации SQL-запросов ΠΈ ΠΈΡ… Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

НапримСр, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ PreparedStatment ΠΈ CallableStatement Π² своСм ΠΊΠΎΠ΄Π΅, эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈ сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ для выполнСния.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ JDBC, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ JDBC для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

19. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ сСриализации

Π‘ΡƒΡ„Π΅Ρ€Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Google — это способ кодирования структурированных Π΄Π°Π½Π½Ρ‹Ρ… Π² эффСктивном, Π½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.Π­Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ богатая ΠΈ Π»ΡƒΡ‡ΡˆΠ°Ρ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° сСриализации Java. Π― Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Java ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Google Protobuf. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Google Protocol Buffer.

20. Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

НСкоторыС ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… сСтСвых Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ — Netty ΠΈ Apache MINA. Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΡƒΡŽ ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎΠ± использовании этих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ сСтСвом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Java, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Π‘Π΅Ρ‚Π΅Π²Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Java — ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сокСтов TCP / IP.

На этом ΠΏΠΎΠΊΠ° всС ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ . Π‘Ρ„Π΅Ρ€Π° Java ΠΎΠ±ΡˆΠΈΡ€Π½Π°, ΠΈ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ мноТСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π½Π° Java, Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ вСроятно, Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Как всСгда, Google — ваш Π»ΡƒΡ‡ΡˆΠΈΠΉ Π΄Ρ€ΡƒΠ³ Π² поискС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Java, Π½ΠΎ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Maven, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для вашСй Π·Π°Π΄Π°Ρ‡ΠΈ.

Π Π°Π±ΠΎΡ‚Π° с Java | Astah

Π Π°Π±ΠΎΡ‚Π° с Java | Astah

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Java

Astah ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java, C ++ ΠΈ C #. Если Π²Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π½Π° Java, сначала установитС это Π² Astah.

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΈ установитС Ρ„Π»Π°ΠΆΠΎΠΊ [Java] Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.
  2. ПослС этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Java Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ [Π―Π·Ρ‹ΠΊ] станут доступны для классов, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π‘ΠžΠ’Π•Π’Π« — УстановитС Java ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Java Π² качСствС языка программирования ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° Astah ΠΈΠ· [Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹] — [Бвойства систСмы] — [ΠŸΡ€ΠΎΠ΅ΠΊΡ‚].

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ Java

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π° Java ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов с ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΌΠΈ модСлями.

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ [Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹] — [Java] — [Π˜ΠΌΠΏΠΎΡ€Ρ‚ Java].
  2. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ .java для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ [OK]. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ.
  3. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ связи.
  4. Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² Π΄Π΅Ρ€Π΅Π²ΠΎ.

АвтоматичСскоС созданиС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ автоматичСски ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ классов с ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ модСлями.

  1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ класс ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ [АвтоматичСскоС созданиС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов].
    Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΈ доступныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ «АвтоматичСскоС созданиС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ классов».
  2. БгСнСрированная Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° открываСтся Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ.

ПослС создания Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ автоматичСски Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ ΠΈΠ»ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΈΠ· мСню [Π’Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅] — [АвтоматичСская ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ°].

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΏΠ»Π°Π³ΠΈΠ½

Плагин Easy Code Reverse ΠΎΡ‚ Astah — это самый простой способ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΈΠ· Github, Bitbucket ΠΈ Gooogle Project Hosting Π² Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ классов UML, просто ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΠ² URL-адрСс рСпозитория ΠΈΠ»ΠΈ.Ρ„Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π° java прямо Π½Π° Astah!

  1. УстановитС ΠΏΠ»Π°Π³ΠΈΠ½ Astah Easy Code Reverse Plug-in
  2. ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ ссылку Π½Π° Ρ„Π°ΠΉΠ» .java ΠΈΠ· ΠΎΠ½Π»Π°ΠΉΠ½-рСпозитория Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.
  3. Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ модСль появится Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅.

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ Java

«Экспорт JavaΒ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ скСлСтного ΠΊΠΎΠ΄Π° Java ΠΈΠ· Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… элСмСнтов Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹.
ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ классов ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

  1. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² [Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹] — [Java] — [Экспорт Java] ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню.
  2. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² исходный ΠΊΠΎΠ΄.
  3. Ρ„Π°ΠΉΠ»ΠΎΠ² .java Π±ΡƒΠ΄ΡƒΡ‚ созданы.
    Если Ρ„Π°ΠΉΠ»Ρ‹ .java с Ρ‚Π°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, Ρ„Π°ΠΉΠ»Ρ‹ исходного ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ экспортировали Π² послСдний Ρ€Π°Π·.
    Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ послСдний экспорт пСрСзаписывал вСсь исходный ΠΊΠΎΠ΄, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ измСнСния, внСсСнныС Π² Ρ„Π°ΠΉΠ»Ρ‹ .java, ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ [ΠŸΡ€ΠΈ пСрСзаписи сохраняйтС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ.] Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ исходного ΠΊΠΎΠ΄Π°

Π§Ρ‚ΠΎ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅?

Γ—

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *