Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Java-Π°ΠΏΠΏΠ»Π΅ΡΠ° ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΠ²Π½ΠΎΠ³ΠΎ JAR-ΡΠ°ΠΉΠ»Π° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Java 2 ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΌΠΎΡΠ½ΠΎΠΉ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Java. Π‘ΡΠ΅Π΄ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ: Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΡΡΡ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΡΡΡΠΎΠ³ΡΡ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Java-Π°ΠΏΠΏΠ»Π΅ΡΠ° ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΠ²Π½ΠΎΠ³ΠΎ JAR-ΡΠ°ΠΉΠ»Π° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΠΠ’ΠΠ ΠΠ£Π ΠΠ‘ΠΠΠ ΠΠΠ‘Π£ΠΠΠ Π‘Π’ΠΠΠΠΠ«Π Π£ΠΠΠΠΠ Π‘ΠΠ’ΠΠ’ ΠΠ£Π’ΠΠ Π‘ΠΠΠΠ©ΠΠΠΠ―
ΠΠ°ΡΠ΅Π΄ΡΠ° «ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ»
ΠΠΠ―Π‘ΠΠΠ’ΠΠΠ¬ΠΠΠ― ΠΠΠΠΠ‘ΠΠ
ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅ «ΠΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ»
Π½Π° ΡΠ΅ΠΌΡ: «Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Java-Π°ΠΏΠΏΠ»Π΅ΡΠ° ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΠ²Π½ΠΎΠ³ΠΎ JAR-ΡΠ°ΠΉΠ»Π° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ«
ΠΡΠΏΠΎΠ»Π½ΠΈΠ»:
ΡΡΡΠ΄Π΅Π½Ρ Π³ΡΡΠΏΠΏΡ ΠΠΠ-708
Π’Π°ΡΠ°Π½ΠΈΠ½ Π.Π.
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ:
ΠΊ.Ρ.Π½., Π΄ΠΎΡ. ΠΠΎΠΆΠΎΠΌΠ±Π΅ΡΠ΄ΠΈΠ΅Π²Π° Π. Π.
Π‘Π°Π½ΠΊΡ-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³ 2009
ΠΠ°Π΄Π°Π½ΠΈΠ΅
ΠΏΠΎ ΠΊΡΡΡΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅ «ΠΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ»
Π½Π° ΡΠ΅ΠΌΡ: «Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Java-Π°ΠΏΠΏΠ»Π΅ΡΠ° ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΠ²Π½ΠΎΠ³ΠΎ JAR-ΡΠ°ΠΉΠ»Π° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ»
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΊ ΠΊΡΡΡΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°ΠΏΠΏΠ»Π΅Ρ, ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ β4 «Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π°ΠΏΠΏΠ»Π΅ΡΠ° Ρ ΡΡΡΠ΅ΠΊΡΠΎΠΌ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Java».
ΠΠ°ΡΠΈΠ°Π½Ρ Π·Π°Π΄Π°Π½ΠΈΡ № 20
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π°ΠΏΠΏΠ»Π΅ΡΠ° Ρ ΡΡΡΠ΅ΠΊΡΠΎΠΌ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π² ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π‘ΠΎΠ·Π΄Π°ΡΡ Π°ΡΡ ΠΈΠ²Π½ΡΠΉ JAR-ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π°ΠΏΠΏΠ»Π΅Ρ.
ΠΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ JAR-ΡΠ°ΠΉΠ» ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ (ΠΠ¦Π) ΠΈ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ»Π΅ΡΠ°, Π²ΠΊΠ»ΡΡΠΈΠ² Π² ΡΠ°ΠΉΠ» ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΡ, ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΠ΅Π½ΠΈΡ-Π·Π°ΠΏΠΈΡΠΈ.
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ jar, keytool ΠΈ jarsigner, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ JDK 1.4.x Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ plug-in Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ° MS IE 5,(6),(7).
ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΊΡΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Java-Π°ΠΏΠΏΠ»Π΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Java: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ³ΡΡ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°ΠΏΠΏΠ»Π΅ΡΠ°. Π’Π°ΠΊΠΆΠ΅ Π°ΠΏΠΏΠ»Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΏΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² Java API.
ΠΡΡ ΠΈΠ²Π½ΡΠΉ JAR-ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π°ΠΏΠΏΠ»Π΅Ρ, ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ. ΠΠ»Ρ Π°ΠΏΠΏΠ»Π΅ΡΠ° Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΡΡΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°ΠΏΠΏΠ»Π΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π°ΠΏΠΏΠ»Π΅ΡΠ° Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Sandbox — «ΠΠ΅ΡΠΎΡΠ½ΠΈΡΠ°».
ΠΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ Π°ΠΏΠΏΠ»Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΡΠ΅Π΄Π΅ MS IE Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ plug-in ΠΈΠ· JDK 1.4.x.
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π°ΠΏΠΏΠ»Π΅ΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΊΠ°Π·Π°ΡΡ Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ Π°ΠΏΠΏΠ»Π΅ΡΡ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΠ°ΠΉΠ».
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
1. ΠΠΏΠΏΠ»Π΅Ρ Ρ ΡΡΡΠ΅ΠΊΡΠΎΠΌ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Java ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅
2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ»Π΅ΡΠ°
2.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΠ²Π½ΠΎΠ³ΠΎ JAR-ΡΠ°ΠΉΠ»Π°
2.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ
2.3 ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ JAR-ΡΠ°ΠΉΠ»Π° ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ
2.4 ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ»Π΅ΡΠ°
3. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ»Π΅ΡΠ° Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° Java 2 ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΌΠΎΡΠ½ΠΎΠΉ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ API-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Java. Π‘ΡΠ΅Π΄ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ: Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠΎΡΡΡ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΠΎΡΡΡ, ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΡΡΡΠΎΠ³ΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΆΠ½ΡΠΌΠΈ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»ΠΈΠΌΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Java 2 ΡΠ²Π»ΡΡΡΡΡ Java Cryptography Architecture (JCA) — Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Java, Π° ΡΠ°ΠΊΠΆΠ΅ Java Cryptography Extension (JCE) — ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Java.
Π¦Π΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΡΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ — ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΠ²Π½ΠΎΠ³ΠΎ JAR-ΡΠ°ΠΉΠ»Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ Π°ΠΏΠΏΠ»Π΅Ρ, ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ»Π΅ΡΠ°; ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌΠΈ Π·Π°ΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ: ΡΠΎΠ·Π΄Π°ΡΡ Π°ΡΡ ΠΈΠ²Π½ΡΠΉ JAR-ΡΠ°ΠΉΠ», ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ, Π΄Π°Π»Π΅Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ JAR-ΡΠ°ΠΉΠ» ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ ΠΈ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ»Π΅ΡΠ°.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ Π°ΠΏΠΏΠ»Π΅Ρ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
1. ΠΠΏΠΏΠ»Π΅Ρ Ρ ΡΡΡΠ΅ΠΊΡΠΎΠΌ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ Java ΠΈ
ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅
Π°ΠΏΠΏΠ»Π΅Ρ Π°ΡΡ ΠΈΠ²Π½ΡΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡ
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Calendar;
// ΠΠ»Π°ΡΡ Π°ΠΏΠΏΠ»Π΅ΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ
public class Lab4 extends Applet implements ActionListener, ItemListener, Runnable
{
Panel p1, p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,cards, pfield, pb, pread;
Label lb1, lb2,lb3;
CheckboxGroup cbg;
Checkbox cb1, cb2,cb3,cb4;
List list;
Canvas cv;
Button b1, b2,b3,b4,start, stop, read;
CardLayout cardLO;
Scrollbar sb1, sb2,sb3,sb4;
Color col;
int posX, strWidth;
FontMetrics fm;
int rectX=0,rectY=0,posFlag=0,movFlag=0,ovalX=0,ovalY=0;
int animFlag=0;
int rColor, gColor, bColor;
// Π€Π»Π°Π³ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ
boolean stopFlag;
// ΠΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ
Thread t = null;
//Π’Π΅ΠΊΡΡΠΎΠ²Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΆΡΡΠ½Π°Π»Π°
TextArea fileText;
// ΠΠΌΡ ΡΠ°ΠΉΠ»Π°-ΠΆΡΡΠ½Π°Π»Π° Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Π°ΠΏΠΏΠ»Π΅ΡΠ°
String fileName = «» ;
// Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΡΡΠΎΠΊ (ΠΏΡΠΈΠ·Π½Π°ΠΊ ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ)
String ls;
// ΠΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΉΠ»
BufferedWriter out;
public void init ()
{
setLayout (new GridLayout (2,2));
setForeground (Color.black);
col = Color. black;
// ΠΠΠΠΠ― ΠΠΠ Π₯ΠΠ―Π― ΠΠΠΠΠΠ¬
p1 = new Panel (new BorderLayout ());
p1.setBackground (Color.lightGray);
p2= new Panel ();
lb1 = new Label («ΠΠΊΡΠΈΠ²Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ: «, lb1. CENTER);
p2.add (lb1);
p1.add (p2,BorderLayout.NORTH);
// ΠΠ°Π½Π΅Π»Ρ ΡΠ°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ Π²Π½ΡΡΡΠΈ ΠΠΠΠΠ ΠΠΠ Π₯ΠΠΠ ΠΏΠ°Π½Π΅Π»ΠΈ
p3 = new Panel (new GridLayout (2,2));
cbg = new CheckboxGroup ();
cb1= new Checkbox («ΠΡΠ΅ ΠΏΠ°Π½Π΅Π»ΠΈ», cbg, true);
cb2= new Checkbox («1-Ρ ΠΏΠ°Π½Π΅Π»Ρ», cbg, false);
cb3= new Checkbox («2-Ρ ΠΏΠ°Π½Π΅Π»Ρ», cbg, false);
cb4= new Checkbox («3-Ρ ΠΏΠ°Π½Π΅Π»Ρ», cbg, false);
cb1.addItemListener (this);
cb2.addItemListener (this);
cb3.addItemListener (this);
cb4.addItemListener (this);
p3.add (cb1);
p3.add (cb2);
p3.add (cb3);
p3.add (cb4);
p1.add (p3,BorderLayout.CENTER);
add (p1);
// ΠΠΠ Π₯ΠΠ―Π― ΠΠ ΠΠΠΠ― ΠΠΠΠΠΠ¬
p4 = new Panel (new GridLayout (1,1));
list = new List (9,false);
list.add («Π§ΡΡΠ½ΡΠΉ»);
list.add («Π‘ΠΈΠ½ΠΈΠΉ»);
list.add («ΠΡΠ°ΡΠ½ΡΠΉ»);
list.add («ΠΠ΅Π»ΡΠ½ΡΠΉ»);
list.add («ΠΡΠ»ΡΡΠΉ»);
list.add («ΠΡΠ°Π½ΠΆΠ΅Π²ΡΠΉ»);
list.add («Π ΠΎΠ·ΠΎΠ²ΡΠΉ»);
list.add («Π€ΠΈΠΎΠ»Π΅ΡΠΎΠ²ΡΠΉ»);
list.add («Π’ΡΠΌΠ½ΠΎ-ΡΠ΅ΡΡΠΉ»);
list.addItemListener (this);
p4.add (list);
add (p4);
// ΠΠΠΠΠ― ΠΠΠΠΠ―Π― ΠΠΠΠΠΠ¬
// ΠΠ°Π½Π΅Π»Ρ Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ
p5 = new Panel (new GridLayout (2,2));
b1 = new Button («ΠΠ²Π°Π΄ΡΠ°Ρ»);
b2 = new Button («ΠΡΡΠ³»);
b3 = new Button («Π’ΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ»);
b4 = new Button («Π‘ΡΡΠΎΠΊΠ°»);
b1.addActionListener (this);
b2.addActionListener (this);
b3.addActionListener (this);
b4.addActionListener (this);
p5.add (b1);
p7.add (b2);
p5.add (b3);
p5.add (b4);
pb = new Panel (new GridLayout (1,2,5,0));
lb2 = new Label («Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ», lb1. CENTER);
start = new Button («ΠΠ°ΠΏΡΡΠΊ»); start. addActionListener (this);
stop = new Button («ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ°»);stop.addActionListener (this);
pb.add (start);
pb.add (stop);
// !!! ΠΠΠΠΠΠ¬ ΠΠΠ― Π§Π’ΠΠΠΠ― Π€ΠΠΠΠ-ΠΠ£Π ΠΠΠΠ !!!
pfield = new Panel (new BorderLayout ());
pread = new Panel (new GridLayout (3,1));
read = new Button («Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°-ΠΆΡΡΠ½Π°Π»Π°»);
read.addActionListener (this);
// Π’Π΅ΠΊΡΡΠΎΠ²Π°Ρ ΠΎΠ±Π»Π°ΡΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΆΡΡΠ½Π°Π»Π°
fileText = new TextArea ();
// ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°-ΠΆΡΡΠ½Π°Π»Π° Π·Π°Π΄Π°ΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π² HTML-ΡΠ°ΠΉΠ»Π΅
// ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ — ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
fileName = getParameter («FileName»);
if (fileName == null)
fileName = «log.txt» ;
ls = System. getProperty («line.separator»); // ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΡΡΡΠΎΠΊ
fileText.setBackground (Color.white);
pread.add (lb2);
pread.add (pb);
pread.add (read);
pfield.add (p5,BorderLayout.NORTH);
pfield.add (pread, BorderLayout. CENTER);
pfield.add (fileText, BorderLayout. SOUTH);
add (pfield);
// ΠΠ ΠΠΠΠ― ΠΠΠΠΠ―Π― ΠΠΠΠΠΠ¬
// ΠΠΠΠΠΠ¬ Π‘ ΠΠΠ Π’ΠΠΠ (ΠΠΠΠΠΠΠ―)
cardLO = new CardLayout ();
cards = new Panel ();
cards.setLayout (cardLO);
cards.setBackground (Color.white);
posX = 65;
// ΠΠΠ ΠΠΠ― ΠΠΠΠΠΠ¬ Π ΠΠΠ Π’ΠΠ₯
p6 = new Panel (new BorderLayout ())
{
public void paint (Graphics g)
{
if (animFlag==0)
{
g.setColor (col);
g.drawRect (rectX, rectY, 50,50); }
}
};
// ΠΠ’ΠΠ ΠΠ― ΠΠΠΠΠΠ¬ Π ΠΠΠ Π’ΠΠ₯
p7 = new Panel (new BorderLayout ())
{
public void paint (Graphics g)
{
if (animFlag==1)
{
g.setColor (col);
g.fillOval (ovalX, ovalY, 50,50); }
}
};
// Π’Π ΠΠ’Π¬Π― ΠΠΠΠΠΠ¬ Π ΠΠΠ Π’ΠΠ₯
p8 = new Panel (new BorderLayout ())
{
public void paint (Graphics g)
{
g.setColor (col);
int x[] = {posX, posX+40,posX+80};
int y[] = {80,20,80};
g.drawPolygon (x, y,3);
}
};
sb3= new Scrollbar (Scrollbar.HORIZONTAL, 0,1,0,100);
sb3.addAdjustmentListener (new AdjustmentListener ()
{
public void adjustmentValueChanged (AdjustmentEvent ae)
{
posX = (ae.getValue ())*(cards.getSize ().width -80) /sb3.getMaximum ();
p8.repaint ();
}
});
p8.add (sb3,BorderLayout.SOUTH);
// Π§ΠΠ’ΠΠΠ Π’ΠΠ― ΠΠΠΠΠΠ¬ Π ΠΠΠ Π’ΠΠ₯
P9 = new Panel (new BorderLayout ())
{
public void paint (Graphics g)
{
fm = g. getFontMetrics ();
strWidth = fm. stringWidth («J A V A»);
g.setFont (new Font («Dialog», Font. ITALIC, 20));
g.setColor (col);
g.drawString («J A V A», posX, 65);
}
};
sb4= new Scrollbar (Scrollbar.HORIZONTAL, 0,1,0,5);
sb4.addAdjustmentListener (new AdjustmentListener ()
{
public void adjustmentValueChanged (AdjustmentEvent ae)
{
posX = (ae.getValue ())*(cards.getSize ().width — strWidth)/sb4.getMaximum ();
p9.repaint ();
}
});
p9.add (sb4,BorderLayout.SOUTH);
// ΠΠΠΠΠΠΠΠΠΠ ΠΠΠ Π’ Π ΠΠΠΠΠΠ¬ Π‘ ΠΠΠ Π’ΠΠΠ (cards)
cards.add (p6," sqaure");
cards.add (p7," oval");
cards.add (p8," rect");
cards.add (p9," text");
add (cards);
// Π‘ΠΠΠΠΠΠΠ ΠΠ£Π€ΠΠ ΠΠΠΠ ΠΠΠΠΠΠΠΠ Π‘ΠΠΠΠΠΠ¬ΠΠΠΠ ΠΠΠ’ΠΠΠ ΠΠΠΠΠ‘Π Π Π€ΠΠΠ
try
{
// Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΊΠ»Π°ΡΡΠ° Buffered ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
// ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° (ΠΏΡΠΈΡΠΌΠ½ΠΈΠΊΠ° Π΄Π°Π½Π½ΡΡ )
out = new BufferedWriter (new FileWriter (fileName));
}
catch (IOException ex)
{
fileText.setText («ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ: «+ ls);
fileText.append (ex.toString () + ls);
}
catch (SecurityException ex)
{
fileText.setText («ΠΠ΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Ρ: «+ ls);
fileText.append (ex.toString () + ls);
read.setEnabled (false);
}
if (out ≠ null)
{
// ΠΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Buffered-ΠΏΠΎΡΠΎΠΊΠ° ΠΏΡΠΎΡΠ»ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅
// Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ Π±ΡΡΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄Π°ΡΠ΅ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
Calendar c = Calendar. getInstance ();
String dateMessage ="ΠΠ°ΡΠ° ΠΈ Π²ΡΠ΅ΠΌΡ: «+ c. get (Calendar.DAY_OF_MONTH) + «/» +
(c.get (Calendar.MONTH)+1) + «- «+ c. get (Calendar.YEAR) +
" «+ c. get (Calendar.HOUR_OF_DAY) + «:» +
c.get (Calendar.MINUTE);
// ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΠΈΡΠΈ Π² String-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ dateMessage ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π΄Π°ΡΠ΅ ;
// Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ writeLogMessage
writeLogMessage (dateMessage);
writeLogMessage («ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π°ΠΏΠΏΠ»Π΅ΡΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½Π°»);
}
/*———————INIT———————*/
}
// ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΉΠ»
private void writeLogMessage (String message)
{
// ΠΠ°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ» ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° write ΠΎΠ±ΡΠ΅ΠΊ-ΡΠ° out ΡΠΈΠΏΠ° BufferedWriter
try
{
out.write (message);
out.newLine ();
}
catch (IOException ex)
{
fileText.setText («ΠΡΠΈΠ±ΠΊΠ° Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΉΠ»:» + ls);
fileText.append (ex.toString () + ls);
}
}
// ΠΠ°ΠΏΡΡΠΊ ΠΏΠΎΡΠΎΠΊΠΎΠ²
public void run ()
{
// ΠΠΎΠΊΠ° ΡΠ»Π°Π³ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ ΡΠ°Π²Π΅Π½ false — ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ
while (!stopFlag)
{
try
{
if (animFlag==0)
{
if (posFlag==0) // ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΏΡΠ°Π²ΠΎ ΠΏΠΎ Π²Π΅ΡΡ Π½Π΅ΠΉ Π³ΡΠ°Π½ΠΈ
{
p6.repaint (); // ΠΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΠΊΠ°
// ΠΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ (Π½Π° 40 ΠΌΡ) ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠΎΡΠΎΠΊΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠ° Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ
// ΠΠ°Π»Π΅Π΅ ΠΈΠ΄ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ/
Thread.currentThread ().sleep (40);
rectX+=5;
if (rectX>p6.getSize ().width-50)
{
rectX-=7;
posFlag =1;
if (posFlag==1)
{
rColor = (int)(255*Math.random ());
gColor = (int)(255*Math.random ());
bColor = (int)(255*Math.random ());
col = new Color (rColor, gColor, bColor);
p6.repaint ();
}
}
}
if (posFlag==1) // ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π½ΠΈΠ· ΠΏΠΎ ΠΏΡΠ°Π²ΠΎΠΉ Π³ΡΠ°Π½ΠΈ
{
p6.repaint ();
Thread.currentThread ().sleep (40); // ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΠΎΠΊ
rectY+=5;
if (rectY>p6.getSize ().height — 50)
{
rectY=p6.getSize ().height-53;
posFlag=2;
if (posFlag==2)
{
rColor = (int)(255*Math.random ());
gColor = (int)(255*Math.random ());
bColor = (int)(255*Math.random ());
col = new Color (rColor, gColor, bColor);
p6.repaint ();
}
}
}
if (posFlag==2) // ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π»Π΅Π²ΠΎ ΠΏΠΎ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈ
{
if (rectX>0)
{
p6.repaint ();
Thread.currentThread ().sleep (40);
rectX-=5;
}
else
{
rectX=0;
posFlag=3;
if (posFlag==3)
{
rColor = (int)(255*Math.random ());
gColor = (int)(255*Math.random ());
bColor = (int)(255*Math.random ());
col = new Color (rColor, gColor, bColor);
p6.repaint ();
}
}
}
if (posFlag==3) // ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π²Π΅ΡΡ ΠΏΠΎ Π»Π΅Π²ΠΎΠΉ Π³ΡΠ°Π½ΠΈ
{
if (rectY>0)
{
p6.repaint ();
Thread.currentThread ().sleep (40);
rectY-=5;
if (rectY<0)
{
rectX=0;
rectY=0;
p6.repaint ();
{
if (rectX==0 && rectY==0)
{
posFlag=0;
if (posFlag==0)
{
rColor = (int)(255*Math.random ());
gColor = (int)(255*Math.random ());
bColor = (int)(255*Math.random ());
col = new Color (rColor, gColor, bColor);
p6.repaint ();
}
}
}
}
}
}
}
if (animFlag==1)
{
if (movFlag==0) // ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΡΠ²Π΅ΡΡ Ρ Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ³ΠΎΠ»
{
p7.repaint ();
Thread.currentThread ().sleep (50);
ovalX+=5;
ovalY+=5;
if (ovalX>p7.getSize ().width-50)
{
ovalX = p7. getSize ().width -50;
ovalY = p7. getSize ().height-52;
movFlag =1;
if (movFlag==1)
{
rColor = (int)(255*Math.random ());
gColor = (int)(255*Math.random ());
bColor = (int)(255*Math.random ());
col = new Color (rColor, gColor, bColor);
p7.repaint ();
}
}
}
if (movFlag==1) // ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈ
{
p7.repaint ();
Thread.currentThread ().sleep (50);
ovalX-=5;
if (ovalX<0)
{
ovalX=0;
movFlag=2;
if (movFlag==2)
{
rColor = (int)(255*Math.random ());
gColor = (int)(255*Math.random ());
bColor = (int)(255*Math.random ());
col = new Color (rColor, gColor, bColor);
p7.repaint ();
}
}
}
if (movFlag==2) // ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΡΠ½ΠΈΠ·Ρ Π²Π²Π΅ΡΡ
{
p7.repaint ();
Thread.currentThread ().sleep (50);
ovalX+=5;
ovalY-=5;
if (ovalX>p7.getSize ().width-50)
{
ovalX = p10. getSize ().width — 52;
ovalY = 0;
movFlag=3;
if (movFlag==3)
{
rColor = (int)(255*Math.random ());
gColor = (int)(255*Math.random ());
bColor = (int)(255*Math.random ());
col = new Color (rColor, gColor, bColor);
p7.repaint ();
}
}
}
if (movFlag==3) // ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π²Π΅ΡΡ Π½Π΅ΠΉ Π³ΡΠ°Π½ΠΈ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ
{
p7.repaint ();
Thread.currentThread ().sleep (50);
ovalX-=5;
if (ovalX<0)
{
ovalX = 0;
movFlag=0;
if (movFlag==0)
{
rColor = (int)(255*Math.random ());
gColor = (int)(255*Math.random ());
bColor = (int)(255*Math.random ());
col = new Color (rColor, gColor, bColor);
p7.repaint ();
}
}
}
}
}
catch (InterruptedException e)
{
return; // ΠΠ°Π²Π΅ΡΡΠΈΡΡ ΠΏΠΎΡΠΎΠΊ
}
}
}
//Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΡ ΠΎΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ
public void actionPerformed (ActionEvente)
{
String ac = e. getActionCommand ();
if (ac.equals («ΠΠ²Π°Π΄ΡΠ°Ρ»))
{
animFlag=0;
cardLO.show (cards," sqaure");
writeLogMessage («Π ΠΈΡΡΠ΅ΡΡΡ ΠΠ²Π°Π΄ΡΠ°Ρ»);
}
if (ac.equals («ΠΡΡΠ³»))
{
animFlag=1;
cardLO.show (cards," oval");
writeLogMessage («Π ΠΈΡΡΠ΅ΡΡΡ ΠΡΡΠ³»);
}
if (ac.equals («Π’ΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ»))
{
cardLO.show (cards," rect");
}
if (ac.equals («Π‘ΡΡΠΎΠΊΠ°»))
{
cardLO.show (cards," text");
}
else if («ΠΠ°ΠΏΡΡΠΊ» .equals (ac))
{
t = new Thread (this);
stopFlag = false;
t.start ();
start.setEnabled (false);
writeLogMessage («ΠΠΎΡΠΎΠΊ Π·Π°ΠΏΡΡΠ΅Π½»);
}
else if («ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ°» .equals (ac))
{
stopFlag=true;
t = null;
start.setEnabled (true);
writeLogMessage («ΠΠΎΡΠΎΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½»);
}
if («Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°-ΠΆΡΡΠ½Π°Π»Π°» .equals (ac))
{
try
{
// Π‘Π±ΡΠΎΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π±ΡΡΠ΅ΡΠ° ΠΏΠΎΡΠΎΠΊΠ° (Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ»)
out.flush ();
// ΠΠ°Π»Π΅Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ
// Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌΠΈΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Lab4Log. txt
// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°*/
BufferedReader in = new BufferedReader (new FileReader (fileName));
String s = «», line;
while ((line = in. readLine ()) ≠ null)
s += line + «n» ;
fileText.setText (s);
in.close ();
}
catch (IOException ex)
{
fileText.setText («ΠΡΠΈΠ±ΠΊΠ° ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°: «+ ls);
fileText.append (ex.toString ());
}
}
}
// Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π»ΠΎΠΊΠ° ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΡ ΠΎΡ ΡΠΏΠΈΡΠΊΠ° List ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ (CheckBox)
public void itemStateChanged (ItemEvent ie)
{
if (ie.getSource () == list)
{
String s = list. getSelectedItem ();
if (s.equals («Π§ΡΡΠ½ΡΠΉ»))
{
col = Color. black;
}
if (s.equals («Π‘ΠΈΠ½ΠΈΠΉ»))
{
col = Color. blue;
}
if (s.equals («ΠΡΠ°ΡΠ½ΡΠΉ»))
{
col = Color. red;
}
if (s.equals («ΠΠ΅Π»ΡΠ½ΡΠΉ»))
{
col = Color. green;
}
if (s.equals («ΠΡΠ»ΡΡΠΉ»))
{
col = Color. yellow;
}
if (s.equals («ΠΡΠ°Π½ΠΆΠ΅Π²ΡΠΉ»))
{
col = Color. orange;
}
if (s.equals («Π ΠΎΠ·ΠΎΠ²ΡΠΉ»))
{
col = Color. pink;
}
if (s.equals («Π€ΠΈΠΎΠ»Π΅ΡΠΎΠ²ΡΠΉ»))
{
col = Color. magenta;
}
if (s.equals («Π’ΡΠΌΠ½ΠΎ-ΡΠ΅ΡΡΠΉ»))
{
col = Color. darkGray;
}
p6.repaint ();
p7.repaint ();
p8.repaint ();
p9.repaint ();
}
}
// ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΡ ΠΎΡ CheckBox (ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ ΠΈ ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²)
if (ie.getSource () == cb1)
{
p1.setEnabled (true);p4.setEnabled (true);
p7.setEnabled (true);
cards.setEnabled (true);
}
if (ie.getSource () == cb2)
{
p1.setEnabled (true);p4.setEnabled (true);
p7.setEnabled (false);
cards.setEnabled (false);
}
if (ie.getSource () == cb3)
{
p1.setEnabled (true);p4.setEnabled (false);
p7.setEnabled (true);
cards.setEnabled (false);
}
if (ie.getSource () == cb4)
{
p1.setEnabled (true);p4.setEnabled (false);
p7.setEnabled (false);
cards.setEnabled (true);
}
}
}
2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ»Π΅ΡΠ°
2.1 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°ΡΡ ΠΈΠ²Π½ΠΎΠ³ΠΎ JAR-ΡΠ°ΠΉΠ»Π°
ΠΠ»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ Π°ΠΏΠΏΠ»Π΅ΡΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ Π΅Π³ΠΎ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ Π² Π°ΡΡ ΠΈΠ²Π½ΡΠΉ JAR-ΡΠ°ΠΉΠ». Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠ° jar, Π»ΠΈΠ±ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°ΡΡ ΠΈΠ²Π° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²ΠΈΠ΄Π°:
jar cfv Lab4.jar Lab4*.class,
Π³Π΄Π΅: jar - Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π°ΡΡ ΠΈΠ²
cfv - ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΈΠ· ΡΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
Β· Ρ — ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π½ΠΎΠ²ΡΠΉ Π°ΡΡ ΠΈΠ²
Β· f - ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² — ΠΈΠΌΡ Π°ΡΡ ΠΈΠ²Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½
Β· v - Π²ΡΠ²ΠΎΠ΄ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎ Π²ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ ΡΡΠΈΠ»ΠΈΡΡ jar
Lab4.jar — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°ΡΡ ΠΈΠ²Π°
Lab4*.class — ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² Π°ΡΡ ΠΈΠ²Π΅ Lab4.jar
ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΠΈΠ»ΠΈΡΠ° jar ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ META-INF Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π°ΡΡ ΠΈΠ²Π° MANIFEST.MF
Π’Π°ΠΊΠΆΠ΅ Π² HTML ΡΠ°ΠΉΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° Π°ΠΏΠΏΠ»Π΅ΡΠ° Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π°ΡΡΠΈΠ±ΡΡ ARCHIVE ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Applet. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠ° ARCHIVE = Lab4.JAR.
2.2 Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ
ΠΠ°Π»Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ keytool ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΠ°ΡΠ° ΠΊΠ»ΡΡΠ΅ΠΉ («ΠΎΡΠΊΡΡΡΡΠΉ/Π·Π°ΠΊΡΡΡΡΠΉ») ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ X.509 Π΄Π»Ρ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠ° «Taraninkey» Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ Taraninstore Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΌΠΎΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°:
keytoolgenkeyalias «Taraninkey» -keystore Taraninstore,
Π³Π΄Π΅:
-genkey - ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, ΡΡΠΎ ΡΡΠΈΠ»ΠΈΡΠ° keytool Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠΈ
-alias «Taraninkey» - ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌ, ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΌ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ
-keystore Taraninstore - Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΊΠ»ΡΡΠ΅ΠΉ
Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΡΡΠΈΠ»ΠΈΡΡ, Π±ΡΠ» Π²Π²Π΅Π΄ΡΠ½ ΠΏΠ°ΡΠΎΠ»Ρ Π·Π°ΡΠΈΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΊΠ»ΡΡΠ΅ΠΉ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Π·Π°ΡΠΈΡΡ Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΊΡΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° «Taraninkey» — 123 369, Π° ΠΏΠ°ΡΠΎΠ»Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΊΠ»ΡΡΠ΅ΠΉ «Taraninstore» — 123.
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π±ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ:
Β· ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΊΠ»ΡΡΠ° RSA
Β· ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ MD-5
2.3 ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ JAR-ΡΠ°ΠΉΠ»Π° ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ
ΠΡΡ ΠΈΠ²Π½ΡΠΉ JAR-ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ jarsigner. ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
jarsigner -keystore Taraninstore Lab4.jar «Taraninkey»
Π£ΡΠΈΠ»ΠΈΡΠ° ΡΡΠ΅Π±ΡΠ΅Ρ Π²Π²Π΅ΡΡΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Π·Π°ΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π°ΡΡ ΠΈΠ²Π° MANIFEST.MF Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ META-INF Π°ΡΡ ΠΈΠ²Π°.
Π Π½Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΊΠ»Π°ΡΡΠ°, Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² Π°ΡΡ ΠΈΠ². ΠΠ°ΠΏΠΈΡΡ ΡΠ°ΠΉΠ»Π° ΠΊΠ»Π°ΡΡΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠΌΡ ΠΈ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ ΡΠ°ΠΉΠ»Π°.
Π’Π°ΠΊΠΆΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ META-INF Π°ΡΡ ΠΈΠ²Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ TARNINK.SF.
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ TARNINK.SF.
Π€Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² Π² Π°ΡΡ ΠΈΠ²Π΅, Π°Π»Π³ΠΎΡΠΈΡΠΌ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ°, Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· Π·Π°ΠΏΠΈΡΠΈ ΡΠ°ΠΉΠ»Π° Π² ΡΠ°ΠΉΠ»Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ MANIFEST.MF.
ΠΠ° Π·Π°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ META-INF ΡΠ°ΠΉΠ»Π° Π°ΡΡ ΠΈΠ²Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ TARANINK.RSA. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΡΠΈΠ»ΠΈΡΠ° keytool ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ RSA. ΠΡΠΎΡ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ TARNINK.SF ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ, Π·Π°Π²Π΅ΡΡΡΡΠΈΠΉ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π·Π°ΠΊΡΡΡΠΎΠΌΡ ΠΊΠ»ΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ.
2.4 ΠΠ°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ»Π΅ΡΠ°
Π Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ Π°ΠΏΠΏΠ»Π΅ΡΠ°, Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ°ΠΉΠ» ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Lab4.policy.
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° — Π½Π°Π±ΠΎΡ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΡ ΠΊΠΎΠ΄Π° Π°ΠΏΠΏΠ»Π΅ΡΠ°. ΠΠ°Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΎ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
3. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ»Π΅ΡΠ°
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π°ΠΏΠΏΠ»Π΅ΡΠ° Π² ΡΡΠ΅Π΄Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ° MS IE 5(6) Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ Java plgu-in ΠΈΠ· JDK 1.4.x ΡΠΈΡΡΠ΅ΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π·Π°Π΄Π°ΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΎ Π΄ΠΎΠ²Π΅ΡΠΈΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΡ, ΡΡΠΈΠΌ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠΌ Π·Π°Π΅Π²Π΅ΡΠ΅Π½ Π°ΠΏΠΏΠ»Π΅Ρ.
ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΎΡΠ²Π΅ΡΠ° Grant this session Π°ΠΏΠΏΠ»Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠ΅ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ. ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΠ²ΠΈΡΡ ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°-ΠΆΡΡΠ½Π°Π»Π°, Ρ ΡΠ°Π½ΡΡΠ΅Π³ΠΎΡΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ Π΄ΠΈΡΠΊΠ΅, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ «View Certificate».
ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Deny Π°ΠΏΠΏΠ»Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ΅ΠΌΠΈ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ, ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ°ΠΉΠ»Π°Ρ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ Grant always Π°ΠΏΠΏΠ»Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΠ΅ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ, ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ Π°ΠΏΠΏΠ»Π΅ΡΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π΄Π°Π²Π°ΡΡΡΡ Π·Π°ΠΏΡΠΎΡ ΠΎ Π΄ΠΎΠ²Π΅ΡΠΈΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΡ, ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° Π±ΡΠ΄ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π°ΠΏΠΏΠ»Π΅ΡΠ° ΠΏΠΎΠ΄ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ appletviewer Π°ΠΏΠΏΠ»Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΠ°Π·ΠΌΠ΅ΡΡΠ½Π½ΠΎΠΌ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²
ΠΠΎΡΠ½ΠΈΠ΅Π½ΠΊΠΎ Π.Π., ΠΠΎΠΆΠΎΠΌΠ±Π΅ΡΠ΄ΠΈΠ΅Π²Π° Π. Π., ΠΡΠΎΡΠ΅Π΅Π² Π. Π. ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Java-Π°ΠΏΠΏΠ»Π΅ΡΠΎΠ². ΠΠ΅ΡΠΎΠ΄. ΡΠΊΠ°Π·Π°Π½ΠΈΡ. — Π‘ΠΠ±.: ΠΠΠ£ΠΠ‘, 2005. — 28 Ρ.
ΠΠΎΡΠ½ΠΈΠ΅Π½ΠΊΠΎ Π.Π., ΠΠΎΠΆΠΎΠΌΠ±Π΅ΡΠ΄ΠΈΠ΅Π²Π° Π. Π., ΠΠΈΡΠ΅Π»Π΅Π² Π. Π‘. ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°ΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Java: ΠΠ΅ΡΠΎΠ΄. ΡΠΊΠ°Π·Π°Π½ΠΈΡ. — Π‘ΠΠ±.: ΠΠΠ£ΠΠ‘, 2006. — 35 Ρ ΠΠΎΡΡΠΎΠ½ Π., Π¨ΠΈΠ»Π΄Ρ Π. Java 2: ΠΠ΅Ρ. Ρ Π°Π½Π³Π». — Π‘ΠΠ±.: ΠΠ₯Π-ΠΠ΅ΡΠ΅ΡΠ±ΡΡΠ³, 2006
Java 2 SDK, Standard Edition Documentation, version 1.2.2.
Π―Π²ΠΎΡΡΠΊΠΈ ΠΠΆ., ΠΠ΅ΡΡΠΎΡΠ½ Π. Π‘ΠΈΡΡΠ΅ΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Java, 2001.