с ΠΊΠ°ΠΊΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ хранится исходный ΠΊΠΎΠ΄ классов Π° с ΠΊΠ°ΠΊΠΈΠΌ скомпилированный java

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, компиляция ΠΈ выполнСния Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°, Π΅Ρ‘ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Если Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ошибки компиляции, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ…, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘. Если Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ошибки выполнСния, ΠΈΠ»ΠΈ ΠΎΠ½Π° Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ снова. Π­Ρ‚ΠΎΡ‚ процСсс ΠΈ являСтся созданиСм (Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Для создания ΠΈ рСдактирования исходного ΠΊΠΎΠ΄Π° Java Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ IDE. Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» дСмонстрируСт, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Java ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΈ запуск Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² NetBeansΒ» ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Ρ‚ΡŒ Π² IDE Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ NetBeans.

МоТно Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· IDE, Π° ΠΏΠΈΡΠ°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ Π² любом тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Notepad), Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

с ΠΊΠ°ΠΊΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ хранится исходный ΠΊΠΎΠ΄ классов Π° с ΠΊΠ°ΠΊΠΈΠΌ скомпилированный java

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ρ„Π°ΠΉΠ» с исходным ΠΊΠΎΠ΄ΠΎΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .java ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² точности Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ имя, ΠΊΠ°ΠΊ ΠΈ имя ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ (public) класса. НапримСр, Ρ„Π°ΠΉΠ» с исходным ΠΊΠΎΠ΄ΠΎΠΌ:

Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Welcome.java, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ имя public класса – Welcome.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Java ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» с исходным ΠΊΠΎΠ΄ΠΎΠΌ Java Π² Ρ„Π°ΠΉΠ» с Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ΠΎΠΌ Java. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Welcome.java:

Если Π½Π΅Ρ‚ синтаксичСских ошибок, компилятор Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ» Π±Π°ΠΉΠΊΠΎΠ΄Π° с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .class. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, привСдённая Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ„Π°ΠΉΠ» с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Welcome.class.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ JDK. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ описано Π² инструкциях:

Π―Π·Ρ‹ΠΊ Java – это высокоуровнСвый язык программирования, Π½ΠΎ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ Java – это Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ язык. Π‘Π°ΠΉΡ‚ΠΊΠΎΠ΄ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ инструкции, Π½ΠΎ Π½Π΅ΠΉΡ‚Ρ€Π°Π»Π΅Π½ ΠΊ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ (Π½Π΅ зависит ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹) ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° любой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, которая ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ Java – Java Virtual Machine (JVM). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ физичСской ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина – это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ Java. Π­Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… прСимущСств Java: Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ Java ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Java компилируСтся Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ Java, Π° Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ Java интСрпрСтируСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Java. Π’Π°Ρˆ ΠΊΠΎΠ΄ Java ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Java. JVM выполняСт ваш ΠΊΠΎΠ΄ вмСстС с ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ – это Π·Π½Π°Ρ‡ΠΈΡ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ Π½Π° любой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ с JVM, которая являСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ. Она (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Java) ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ инструкции Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ языковой ΠΊΠΎΠ΄. Π­Ρ‚ΠΎ дСлаСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ – ΠΎΠ΄Π½Π° инструкция Π·Π° Ρ€Π°Π·, Π° Π½Π΅ вся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π·Π° ΠΎΠ΄ΠΈΠ½ присСст. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ шаг Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ выполняСтся, сразу послС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° выполняСт Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π²Ρ‹ΡˆΠ΅:

На ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ процСсс компиляции ΠΈ запуска:

с ΠΊΠ°ΠΊΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ хранится исходный ΠΊΠΎΠ΄ классов Π° с ΠΊΠ°ΠΊΠΈΠΌ скомпилированный java

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .class Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΊΠΎΠ³Π΄Π° запускаСтС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ИмяКласса для запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Если Π²Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ИмяКласса.class, Ρ‚ΠΎ систСма Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ„Π°ΠΉΠ»ΠΎΠΌ ИмяКласса.class.class.

Π‘ΠΏΡ€Π°Π²ΠΊΠ°: ΠΊΠΎΠ³Π΄Π° выполняСтся Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, JVM Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° класса Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ классов (class loader). Если ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы, Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ классов динамичСски ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ понадобятся. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ класса, JVM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Ρ‘Ρ€ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° (bytecode verifier) для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Ρ‡Ρ‚ΠΎ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ бСзопасности Java. Java обСспСчиваСт ΡΡ‚Ρ€ΠΎΠ³ΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ классов Java Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Π»Π°Π½Ρ‹ ΠΈ Π½Π΅ врСдят Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ.

ΠŸΠ΅Π΄Π°Π³ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ваш инструктор ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ вас ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. НапримСр, всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· этой части ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ chapter2. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… ΠΈ пространствах ΠΈΠΌΡ‘Π½ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π΄Π°Π»Π΅Π΅. Π’Π°ΠΊΠΆΠ΅ посмотритС Ρ€Π°Π·Π΄Π΅Π» Β«ΠŸΠΎΡ‡Π΅ΠΌΡƒ NetBeans всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ packageΒ».

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки компиляции ΠΈ запуска Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Команда javac нС найдСна

Если ΠΏΡ€ΠΈ запускС javac, Ρ‚.Π΅. ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ компиляции Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ JDK Π½Π΅ установлСн. Π›ΠΈΠ±ΠΎ установлСн, Π½ΠΎ Π½Π΅ настроСны ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния. Бпособы исправлСния ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹:

Если JDK установлСн, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· добавлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ исполнимого Ρ„Π°ΠΉΠ»Π° javac:

Ошибка Class names are only accepted if annotation processing is explicitly requested

Если ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка:

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° ошибки Π² Ρ‚ΠΎΠΌ – Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° .java.

Ошибка записи (error while writing)

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ заканчиваСтся ошибкой:

Ошибка «class is public, should be declared in a file named»

ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заканчиваСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠΉ Ρ‚Π°ΠΊΠΎΠΉ ошибкой

ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π½Π°Π·Π²Π°Π»ΠΈ класс Π² исходном ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Имя класса Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ„Π°ΠΉΠ» называСтся Welcome.java, Π° класс Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Π·Π²Π°Π½ Welcomee

Error: Could not find or load main class

Если ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π΅Ρ‘ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊ названию Ρ„Π°ΠΉΠ»Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .class. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина автоматичСски добавляСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ½Π° ΠΈΡ‰Π΅Ρ‚ Ρ„Π°ΠΉΠ» Welcome.class.class

Ошибка Error: Could not find or load main class ΠΏΡ€ΠΈ запускС Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ

Π­Ρ‚Π° ошибка Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ запускС Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ:

Ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠ°ΠΊ Π² Windows, Ρ‚Π°ΠΊ ΠΈ Π² Linux:

Если Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ запускаСтС, Ρ‚ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ. НапримСр, Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

с ΠΊΠ°ΠΊΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ хранится исходный ΠΊΠΎΠ΄ классов Π° с ΠΊΠ°ΠΊΠΈΠΌ скомпилированный java

Если ΠΆΠ΅ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ -cp, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π³Π΄Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° запускаСмая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. А Π΄Π°Π»Π΅Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ запускаСмый Ρ„Π°ΠΉΠ» Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ .class:

с ΠΊΠ°ΠΊΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ хранится исходный ΠΊΠΎΠ΄ классов Π° с ΠΊΠ°ΠΊΠΈΠΌ скомпилированный java

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°, командная строка находится Π² ΠΏΠ°ΠΏΠΊΠ΅ C:\WINDOWS\system32. Π€Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, находится Π² ΠΏΠ°ΠΏΠΊΠ΅ C:\ (ΠΊΠΎΡ€Π΅Π½ΡŒ диска). ΠœΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ послС ΠΊΠ»ΡŽΡ‡Π° -cp ΠΏΠ°ΠΏΠΊΡƒ C:\, Π° Π·Π°Ρ‚Π΅ΠΌ пишСм имя Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ – Welcome.

Аналогично Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² Linux. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Ошибка Main method not found in class

Если ΠΏΡ€ΠΈ запускС Π²Ρ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с ошибкой:

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ main, Π»ΠΈΠ±ΠΎ написали слово Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Main вмСсто main).

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ компиляции ΠΈ запуска Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Windows

Команда «javac» Π½Π΅ являСтся Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΈΠ»ΠΈ внСшнСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, исполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ

Π­Ρ‚Π° ошибка рассмотрСна Ρ‡ΡƒΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅. Для установки ΠΈ настройки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния Π² Windows ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ инструкции «Установка Java (JDK) Π² WindowsΒ».

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ Π² Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Windows

Если Π²Ρ‹ написали ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² консоль:

А Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ крякозяблы:

с ΠΊΠ°ΠΊΠΈΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ хранится исходный ΠΊΠΎΠ΄ классов Π° с ΠΊΠ°ΠΊΠΈΠΌ скомпилированный java

Π—Π½Π°Ρ‡ΠΈΡ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ строки ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, отличаСтся ΠΎΡ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Windows.

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ нСсколько способов ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. ΠšΡΡ‚Π°Ρ‚ΠΈ, Ссли для запуска ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Java Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ NetBeans, Ρ‚ΠΎ ΠΎΠ½ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ строки Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅. Π’ Linux эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ отсутствуСт. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π° врСмя, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ смСна ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Windows Π½Π΅ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Π»Π°ΡΡŒ послС закрытия ΠΈ открытия ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΌΠΎΠΆΠ½ΠΎ внСсти измСнСния Π² рССстр Windows. Для этого Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Win+x, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΒ», Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅Π΅ΡΡ ΠΎΠΊΠ½ΠΎ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ regedit. Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΉΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ (Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ рССстра Windows) ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun] ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ (ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° @chcp 65001>nul

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π—ΠΎΠ½Π° ΠΊΠΎΠ΄Π°

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ вниманию Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΡŽ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π΄Π°Π²Π½ΠΎ β€” Π² 2012 Π³ΠΎΠ΄Ρƒ. Π—Π°Ρ‡Π΅ΠΌ Π΅ΠΉ ΠΏΡ‹Π»ΠΈΡ‚ΡŒΡΡ Π½Π° винчСстСрС? ΠŸΡƒΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅ пылится Π½Π° сайтС, Ρ€Π΅ΡˆΠΈΠ» я.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассказываСтся ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° языкС Java классы ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ ΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ компиляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π² ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ.

Когда писалась ΡΡ‚Π°Ρ‚ΡŒΡ, Π²ΠΎ Π΄Π²ΠΎΡ€Π΅ свирСпствовала 7-я вСрсия языка Java. БСйчас, Π² Ρ„Π΅Π²Ρ€Π°Π»Π΅ 2018-Π³ΠΎ Π³ΠΎΠ΄Π°, Π·Π° ΠΎΠΊΠ½ΠΎΠΌ ΡƒΠΆΠ΅ вовсю рСзвится 9-я вСрсия. Но, полагаю, Ρ‡Ρ‚ΠΎ вся информация, излоТСнная Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅, справСдлива, всё ΠΆΠ΅, ΠΈ для послСднСй вСрсии языка, Ρ…ΠΎΡ‚ΡŒ я этого ΠΈ Π½Π΅ провСрял (Π° Π½Π°Π΄ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ). Π’Π΅Π΄ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, насколько я помню, ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных Π½Π° старых вСрсиях, с Π½ΠΎΠ²Ρ‹ΠΌΠΈ компиляторами ΡΠΎΡ…Ρ€Π°Π½ΡΠ»Π°ΡΡŒ.

Π‘Ρ‚Π°Ρ‚ΡŒΡ адрСсована Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ. Но ΠΈ ΠΌΠ½Π΅ самому ΠΎΠ½Π°, полагаю, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π°, Ссли я Ρ€Π΅ΡˆΡƒΡΡŒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ языку Java послС ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅Ρ‚Π½Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π° Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌ. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΈΠΌΠ΅Π½Π½ΠΎ информация ΠΎ структурС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Java Π±ΡƒΠ΄Π΅Ρ‚ для мСня Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π° Π² случаС Ρ‚Π°ΠΊΠΎΠ³ΠΎ возвращСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ сильно, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ элСмСнтами языка, «Π·Π°Ρ‚Ρ‘Ρ€Π»Π°ΡΡŒ» Π² ΠΌΠΎΠ΅ΠΉ Π³ΠΎΠ»ΠΎΠ²Π΅.

Π’ΡΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ я попытался ΠΈΠ·Π»ΠΎΠΆΠΈΡ‚ΡŒ достаточно ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, ΠΈ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя, систСматично.

Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽ слово сСбС самому 6-Π»Π΅Ρ‚Π½Π΅ΠΉ давности.

ВступлСниС

ЗдравствуйтС, ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ! Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассматриваСтся структура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Java, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡΠ²Π΅Ρ‰Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вопросы, связанныС с этой Ρ‚Π΅ΠΌΠΎΠΉ: компиляция ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΡƒ ΠΏΡƒΡ‚ΠΈ для поиска классов, ΠΈΠΌΠΏΠΎΡ€Ρ‚ классов ΠΈ Ρ‚. Π΄.

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

Π’ связи с этим вспоминаю случай ΠΈΠ· ΠΌΠΎΠ΅Π³ΠΎ пСдагогичСского ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ. Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ΠΊΠ°, ΠΈΠ·ΡƒΡ‡Π°Π²ΡˆΠ°Ρ язык Java ΠΏΠΎΠ΄ ΠΌΠΎΠΈΠΌ Ρ‡ΡƒΡ‚ΠΊΠΈΠΌ руководством, Π±Π»Π°Π³ΠΎΠΏΠΎΠ»ΡƒΡ‡Π½ΠΎ сдала Π·Π°Ρ‡Ρ‘Ρ‚ Π·Π° сСмСстр. А Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ сСмСстрС Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π²ΡƒΡˆΠΊΠ° Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Оказалось, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½Π΅Π΅ ΠΎΠ½Π° пользовалась NetBeans’ом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполнял всю Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ сборкС ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π° Π½Π΅Ρ‘. И ΠΏΡ€ΠΈ этом ΠΎΠ½Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ написала ΠΏΠΎΠ»Ρ‚ΠΎΡ€Π° дСсятка Π½Π΅ самых простых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ!

Π˜Ρ‚Π°ΠΊ, Ссли Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‡Π΅, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния исходных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния скомпилированных Ρ„Π°ΠΉΠ»ΠΎΠ². ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΠ±Π΅ΠΈΠΌ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌ зрСния.

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

Начнём Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° языкС Java, двигаясь ΠΎΡ‚ простого ΠΊ слоТному.

Один Ρ„Π°ΠΉΠ» β€” ΠΎΠ΄ΠΈΠ½ класс

Для компиляции Ρ„Π°ΠΉΠ»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ (Ρ‚. Π΅. Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТится Ρ„Π°ΠΉΠ») ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ javac (компилятор), ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΉ, Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Ρ„Π°ΠΉΠ»Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Для запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ java (ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€) с ΠΈΠΌΠ΅Π½Π΅ΠΌ запускаСмого класса Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ начнётся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° main() запускаСмого класса ( Alpha Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅).

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ (Ρ‰Ρ‘Π»ΠΊΠ½ΠΈΡ‚Π΅ для увСличСния)

Один Ρ„Π°ΠΉΠ» β€” нСсколько классов

Π’ ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ нСсколько классов. Π’ этом случаС имя Ρ„Π°ΠΉΠ»Π° (Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ) Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ любого ΠΈΠ· этих классов.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… классов Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ (Ρ‰Ρ‘Π»ΠΊΠ½ΠΈΡ‚Π΅ для увСличСния)

НСсколько классов Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ…

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ², Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТатся ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ классов. РазумССтся, имя ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса (Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ) Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· классов, Π² Π½Ρ‘ΠΌ содСрТащихся.

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ, запустив ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ javac с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

javac Alpha.java Beta.java Gamma.java

Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ случаС, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса Π±ΡƒΠ΄Π΅Ρ‚ создан Ρ„Π°ΠΉΠ» с Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… классов Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… (Ρ‰Ρ‘Π»ΠΊΠ½ΠΈΡ‚Π΅ для увСличСния)

А Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, состоящСй ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²? ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π»ΠΈ Π² этом Ρ„Π°ΠΉΠ»Π΅ классы, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Ρ‘ΠΌ Π½Π΅ содСрТится.

Если Ρ‚Π°ΠΊΠΈΠ΅ классы Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ скомпилированы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ классы, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… имССтся Π² этом Ρ„Π°ΠΉΠ»Π΅.

Если Ρ‚Π°ΠΊΠΈΠ΅ классы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ прСдпринята ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π½Π°ΠΉΡ‚ΠΈ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ этих классов. Если Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π°ΠΉΠ΄Π΅Π½, Π° исходный отсутствуСт, Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий, ΠΏΠΎΠΌΠΈΠΌΠΎ компиляции нашСго СдинствСнного Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Если, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, имССтся исходный ΠΊΠΎΠ΄, Π° Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ отсутствуСт, Ρ‚ΠΎ этот исходный ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ скомпилирован.

Ну Π° Ссли компилятору Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈ исходный ΠΊΠΎΠ΄ классов, Π½ΠΈ ΠΈΡ… Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, Ρ‚ΠΎ наш СдинствСнный Ρ„Π°ΠΉΠ» ΠΎΠ½ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Π° вмСсто этого Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ сообщСниС ΠΎΠ± ошибкС.

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ поиска Ρ„Π°ΠΉΠ»ΠΎΠ² пСрСдаётся компилятору Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Π½ΠΎ это Π½Π΅ СдинствСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚). Π”Π°Π½Π½ΠΎΠΌΡƒ вопросу Π±ΡƒΠ΄Π΅Ρ‚ посвящён ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» ΡΡ‚Π°Ρ‚ΡŒΠΈ. Если ΠΆΠ΅ компилятор «Π½Π΅ Π·Π½Π°Π΅Ρ‚», Π³Π΄Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‚ΠΎ поиск ΠΎΠ½ осущСствляСт Π² Ρ‚ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится наш ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ» (Π·Π°Ρ‚Π΅ΠΌ поиск продолТаСтся Π² Ρ‚ΠΎΠΌ мСстС, Π³Π΄Π΅ хранится стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Java; ΠΎΠ± этом ΠΌΡ‹ Π΅Ρ‰Ρ‘ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅).

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, компиляция Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ компиляции Π΅Ρ‰Ρ‘ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². РазумССтся, ΠΏΡ€ΠΈ компиляции ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы; Π² этом случаС ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ нСсколько «Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ компиляций».

ΠšΠ»Π°ΡΡΡ‹, ΠΏΠΎΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Π΅ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, классы ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΏΠΎΠΌΠΈΠΌΠΎ классов, ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя интСрфСйсы ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅, Π² этом случаС, ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ.

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π° (ΠΈΠ· этого ΠΏΡ€Π°Π²ΠΈΠ»Π° имССтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ€Π΅Ρ‡ΡŒ ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ Π½ΠΈΠΆΠ΅). Имя ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π° β€” это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ языка Java. Часто Ρ‚Π°ΠΊΠΆΠ΅ говорят ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Если ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ являСтся ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ, Ρ‚ΠΎ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя совпадаСт с Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ПолноС имя ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π° прСдставляСт собой ΠΏΠΎΠ»Π½ΠΎΠ΅ имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°, содСрТащСго Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Ρ‚ΠΎΡ‡ΠΊΠ° ΠΈ имя этого ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

ПолноС имя класса состоит ΠΈΠ· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ этот класс содСрТится, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Ρ‚ΠΎΡ‡ΠΊΠ° ΠΈ имя класса. НапримСр, Ссли Ρ„Π°ΠΉΠ» Alpha.java ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

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

Запуск Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ класса, Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚, отличаСтся ΠΎΡ‚ рассмотрСнного Ρ€Π°Π½Π΅Π΅ запуска класса ΠΈΠ· бСзымянного ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ряда условий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рассмотрСны Π½ΠΈΠΆΠ΅.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Ссли класс Π²Π»ΠΎΠΆΠ΅Π½ Π² ΠΏΠ°ΠΊΠ΅Ρ‚, Ρ‚ΠΎ скомпилированный ΠΊΠΎΠ΄ класса Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ Ρ‚ΠΎ ΠΆΠ΅ самоС имя, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚. Если этот ΠΏΠ°ΠΊΠ΅Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚, Ρ‚ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½Ρ‹ΠΉ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½Ρ‹ΠΉ с внСшним ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ ΠΈ Ρ‚. Π΄., Ρ‚. Π΅. ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°, Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ иСрархия ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Ρ‚Π°ΠΊΠΆΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°.

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, ΠΏΡ€ΠΈ запускС Ρ„Π°ΠΉΠ»Π° Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя класса. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для выполнСния класса Alpha (ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ содСрТит ΠΌΠ΅Ρ‚ΠΎΠ΄ main() ) Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

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

ΠšΠΎΠΌΠ°Π½Π΄Ρƒ для запуска класса Alpha ΠΌΡ‹ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ:

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ класса, Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (Ρ‰Ρ‘Π»ΠΊΠ½ΠΈΡ‚Π΅ для увСличСния)

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ссли Π±Ρ‹ ΠΏΡ€ΠΈ компиляции ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΊΠ»ΡŽΡ‡Ρƒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ‚ΠΎΡ‡ΠΊΡƒ:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Beta.java ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

Π° Π·Π°Ρ‚Π΅ΠΌ β€” Alpha.java :

Для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Java ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сторон.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΡ‘Π½. ΠžΡ‡Π΅Π½ΡŒ часто, особСнно Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, программист Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классы, созданныС Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ такая ситуация, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классы, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ названия. Π’ отсутствии ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², компилятор Π½Π΅ смог Π±Ρ‹ Π² этом случаС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ классу происходит обращСния, поэтому ΠΊΠΎΠ΄ Π½Π΅ скомпилировался Π±Ρ‹.

Если ΠΆΠ΅ классы с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ названиями ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Ρ‚ΠΎ, ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΠΎΠ»Π½Ρ‹Ρ… ΠΈΠΌΡ‘Π½, ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚. Π”Π°ΠΆΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ классы с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. Если ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ эти классы Π² Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² позволяСт Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ классов. ΠšΠ»Π°ΡΡΡ‹, ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ составныС части Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΎΠΉ области, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹Π΅ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π²ΠΎ внСшний ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈ Ρ‚. Π΄. Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ удобство Π΅Ρ‘ использования, докумСнтирования ΠΈ сопровоТдСния.

Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, классы ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для использования Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ классами этого ΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ скрыты ΠΎΡ‚ внСшнСго доступа (Ρ‚. Π΅. ΠΎΡ‚ доступа ΠΈΠ· классов, Π½Π΅ входящих Π² этот ΠΏΠ°ΠΊΠ΅Ρ‚). НСсанкционированный доступ ΠΊ классам, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌ лишь для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ использования (Ρ‚. Π΅. использования Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°), ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ внСшним ΠΊΠΎΠ΄ΠΎΠΌ возмоТности чтСния ΠΈΠ»ΠΈ измСнСния ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π˜ΠΌΠΏΠΎΡ€Ρ‚ классов

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ общСдоступному классу, содСрТащСмся Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅, ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса, содСрТащСмся Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅, Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ класса для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ компилятор Π·Π½Π°Π», Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ класс.

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ классов, Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚, Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° классов ΠΈΠ· ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π»ΠΎΠΆΠ΅Π½ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚. НапримСр, инструкция

МоТно ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ всС общСдоступныС классы ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π° лишь ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ классы. Для этого Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:

НапримСр, ΠΈΠΌΠΏΠΎΡ€Ρ‚ общСдоступного класса Alpha ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° pack1.pack2.pack3 выглядит Ρ‚Π°ΠΊ:

Зададимся Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вопросом: Π° Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ классы Π΄Π²ΡƒΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ общСдоступныС классы с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ? ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос достаточно прост. Если ΠΊ этим классам ΠΌΡ‹ Π½Π΅ обращаСмся Π² ΠΊΠΎΠ΄Π΅, Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚. Но стоит Π½Π°ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ…, Ρ‚Π°ΠΊ сразу ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ появятся. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π½Π΅ смоТСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ классу ΠΌΡ‹ обращаСмся, поэтому ΠΎΠ½ попросту откаТСтся ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ выдаст ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС ΠΎ нСоднозначности.

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

Π’ распоряТСнии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° языкС Java имССтся огромная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° классов ΠΈ интСрфСйсов, ΡΠ²Π»ΡΡŽΡ‰Π΅ΠΉΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Java. Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° называСтся стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Java API (application programming interface β€” интСрфСйс ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования). ΠšΠ»Π°ΡΡΡ‹ ΠΈ интСрфСйсы, входящиС Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, распрСдСлСны ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ сказанноС Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… Π°Π±Π·Π°Ρ†Π°Ρ…. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

А Π²ΠΎΡ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Установка ΠΏΡƒΡ‚Π΅ΠΉ ΠΊ классам

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ компилятор ΠΈΡ‰Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ для компиляции ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ компилятору, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡ… ΠΈΡΠΊΠ°Ρ‚ΡŒ.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ компилятор ΠΈΡ‰Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π΅ΠΌΡƒ для компиляции, Π² Ρ‚ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ Π²Ρ‹Π·Π²Π°Π½. Если Π² этих Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ссылки Π½Π° классы, Π² Π΄Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… Π½Π΅ описанныС, Ρ‚ΠΎ компилятор пытаСтся ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΈΡ… Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ, хотя Π±Ρ‹, исходный. Π­Ρ‚ΠΎΡ‚ поиск Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½ компилятор, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒΡΡ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², которая Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΎΠΆΠ΅Π½Ρ‹ Ρ„Π°ΠΉΠ»Ρ‹.

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

Π‘Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ классов Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒΡΡ Π² jar-Π°Ρ€Ρ…ΠΈΠ²Π°Ρ…, содСрТащихся Π² дирСкториях lib ΠΈ lib\ext (здСсь ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° JRE). ИмСнно Π² этих дирСкториях Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ скомпилированныС классы стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Java.

ΠŸΡƒΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ„Π°ΠΉΠ»Π΅ Example.java имССтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

ΠŸΡƒΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ сущСствуСт Ρ„Π°ΠΉΠ» Message.java ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ содСрТания:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° консоль Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ:

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Π΄Π²ΡƒΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ-ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (Ρ‰Ρ‘Π»ΠΊΠ½ΠΈΡ‚Π΅ для увСличСния)

ΠœΡ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² Message.java ΠΈ Example.java ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. Однако ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сразу ΠΎΠ±Π° Ρ„Π°ΠΉΠ»Π°. Для этого достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ для запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Project достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ лишь ΠΎΠ΄ΠΈΠ½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ для поиска Ρ„Π°ΠΉΠ»ΠΎΠ²:

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ Π΄Π²ΡƒΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ (Ρ‰Ρ‘Π»ΠΊΠ½ΠΈΡ‚Π΅ для увСличСния)

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании ΠΊΠ»ΡŽΡ‡Π° –classpath ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΊΠ°ΠΊ компилятора, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ поиск Ρ„Π°ΠΉΠ»ΠΎΠ² с Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ запускаСмого Ρ„Π°ΠΉΠ»Π° (ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ компилятора), ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΡƒΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ (Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ тСкущая дирСктория Π½Π΅ прописана Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ ΠΊΠ»ΡŽΡ‡Ρƒ ‑classpath ).

Для установки Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ β€œΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды” (Π² Window 7: β€œΠŸΡƒΡΠΊβ€ β†’ β€œΠŸΠ°Π½Π΅Π»ΡŒ управлСния” β†’ β€œΠ‘ΠΈΡΡ‚Π΅ΠΌΠ°β€ β†’ β€œΠ”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ систСмы” β†’ β€œΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды”). Π’ Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π° располоТСна панСль β€œΠ‘ΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹Π΅ пСрСмСнныС”. Если Π² спискС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… CLASSPATH ΡƒΠΆΠ΅ имССтся, достаточно Ρ‰Ρ‘Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ Π΅Ρ‘ ΠΈΠΌΠ΅Π½ΠΈ Π² спискС ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкстовоС ΠΏΠΎΠ»Π΅ β€œΠ—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСмСнной” появившСгося ΠΎΠΊΠ½Π° β€œΠ˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ систСмной пСрСмСнной”.

Если пСрСмСнная CLASSPATH Π² спискС отсутствуСт, Ρ‚ΠΎ Π΅Ρ‘ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, Ρ‰Ρ‘Π»ΠΊΠ½ΡƒΠ² ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ β€œΠ‘ΠΎΠ·Π΄Π°Ρ‚ΡŒβ€ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈ ввСдя имя ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ тСкстовыС поля появившСгося ΠΎΠΊΠ½Π° β€œΠΠΎΠ²Π°Ρ систСмная пСрСмСнная”.

Установка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния CLASSPATH ΠΈΠΌΠ΅Π΅Ρ‚ ряд нСдостатков. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большим количСством ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², содСрТащих большоС количСство классов, ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ всС ΠΏΡƒΡ‚ΠΈ Π² CLASSPATH достаточно Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² CLASSPATH дирСкториях Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… классов, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ совсСм Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ являСтся Ρ‚Π΅ΠΌ классом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ.

Установка значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ CLASSPATH Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ сСансС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ.

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΎ ΠΎΠ± интСрфСйсах

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‡Π΅, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (Π² ΠΎΠ±ΠΎΠΈΡ… смыслах) β€” это Π½Π°Π±ΠΎΡ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², содСрТащих классы ΠΈ интСрфСйсы.

Π—Π°ΠΎΠ΄Π½ΠΎ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ, тСсно связанных с Π³Π»Π°Π²Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ, вынСсСнной Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΡΡ‚Π°Ρ‚ΡŒΠΈ. ΠœΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Ρ‘ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ классы Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ классы, автоматичСски ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ структуру ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², содСрТащих Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ компилятору ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ ΠΏΡƒΡ‚ΠΈ поиска классов ΠΈ интСрфСйсов, ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Java ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ хранятся Π΅Ρ‘ Ρ„Π°ΠΉΠ»Ρ‹ с Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. НадСюсь, Ρ‡Ρ‚ΠΎ ΠΈΠ· этой ΡΡ‚Π°Ρ‚ΡŒΠΈ Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ для сСбя Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

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

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