ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² IDE β ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ: ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΊΠΎΠ΄Π°, ΡΠ΄ΠΎΠ±Π½ΡΠΉ Π΄Π΅Π±Π°Π³, ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ΅ΠΌΠ½Π°Ρ ΡΠ΅ΠΌΠ°. Π’Π°ΠΊ Π²ΠΎΡ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ IDE ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΌΠΈΠΌΠΈΠ»ΡΠ½ΡΠΌΠΈ ΡΠ°Π³Π°ΠΌΠΈ. ΠΠΎ ΠΎΠ½Π° ΡΠ°ΡΡΠ»Π°Π±Π»ΡΠ΅Ρ. Π‘ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π΄Π½Π΅ΠΌ, ΠΏΠΎΠ³ΡΡΠΆΠ°ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» IDE, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΈΠ²ΡΠΊΠ°Π΅Ρ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Π΄Π²ΡΠΌΡ ΠΊΠ»ΠΈΠΊΠ°ΠΌΠΈ.
ΠΠΎΡΠ°Π·Π΄ΠΎ Ρ
ΡΠΆΠ΅ ΠΎΠ±ΡΡΠΎΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡ Ρ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² IDE, ΠΈΠ³Π½ΠΎΡΠΈΡΡΡ ΡΠ°Π±ΠΎΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Intellij IDEA ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΌ Π±Π°ΡΠΎΠΌ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Π° Π²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° classpath ΠΈ ΠΏΡΠΎΡΠΈΡ
ΠΏΡΠ΅Π»Π΅ΡΡΠ΅ΠΉ Java-ΠΆΠΈΠ·Π½ΠΈ ΠΎΡΡΠ°Π΅ΡΡΡ Π·Π° ΠΊΠ°Π΄ΡΠΎΠΌ.
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² Java Π±Π΅Π· IDE. ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π² ΡΡΠ°ΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π½Π° Π²Π°ΡΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° JDK 1.7 ΠΈ ΡΡΠ°ΡΡΠ΅.
ΠΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ?
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ β ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΡΠ°ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:- ΠΡΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ΡΠ°ΠΉΠ»Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ΠΠ»Π°ΡΡΠ°.java;
- ΠΡΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΎΠ½ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ (Π² ΡΠ°ΠΉΠ» ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ΠΠ»Π°ΡΡΠ°.class);
- ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ.
class Test {
public static void main(String[] args) {
System.out.println("ΠΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ");
}
}
ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° javac
ΠΠΊΠ΅ΠΉ, ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠ½ΠΊΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½. ΠΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ: ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ β ΡΡΠΎ ΠΊΠ°ΠΊ? :) Π ΡΡΠΎΠΌ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° javac, Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π½ΡΠΆΠ½ΡΠΉ ΡΠ°ΠΉΠ»:
javac Test.java
ΠΡΠ»ΠΈ Π½Π΅Ρ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅, ΡΡΠ΄ΠΎΠΌ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ Test.java ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ°ΠΉΠ» Test.class. ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄. Π’Π΅ΠΏΠ΅ΡΡ Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ. ΠΠ΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° java, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠ°Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄:
ΠΠ° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΈΠ΅ΡΠΎΠ³Π»ΠΈΡΡ: ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ±ΠΈΡΠ°Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Windows. ΠΠ»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
REM change CHCP to UTF-8
CHCP 65001
CLS
ΠΠ½ΠΈ ΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π½Π° Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°.
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΅ΡΠ΅ ΡΠ°Π·:
D:\Java>java Test
ΠΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠ½Π°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ javac ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π»Π΅ΠΆΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ².
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Π½ΡΠΆΠ΅Π½ classpath. ΠΠ½ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΊΠ»Π°ΡΡΡ, Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ°ΠΏΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ (packages). ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΡΠΎΠΈΡ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ ΠΎΠ± ΠΎΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ src, Π° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ β Π² bin. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΊΠ»Π°ΡΡBox
ΠΈ ΠΊΠ»Π°ΡΡ BoxMachine
, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ main
.
ΠΠ»Π°ΡΡ Box
:
package src;
public class Box {
private double size;
public Box(double size) {
this.size = size;
}
public String toString() {
return "Box have size " + size;
}
}
ΠΠ½ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ src, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΠ»Π°ΡΡ BoxMachine
:
package src;
public class BoxMachine {
public static void main(String[] args) {
for(int i = 0; i < 5; i++) {
System.out.println(new Box(Math.random()*10));
}
}
}
ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ src. Π ΠΌΠ΅ΡΠΎΠ΄Π΅ main
ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Box
ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½ΠΈΡ
.
Π§ΡΠΎΠ±Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ Π³ΡΡΠΏΠΏΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° (Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π»Π΅ΠΆΠ°Ρ ΠΏΠ°ΠΏΠΊΠΈ src ΠΈ bin) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ javac Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ:
javac -d bin ./src/*
-d
β ΡΠ»Π°Π³, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΡΠ΄Π° ΠΏΠΎΠΏΠ°Π΄ΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 1000 ΠΊΠ»Π°ΡΡΠΎΠ² β ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄ΠΎΠ΅ΠΌΠΊΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ.
bin
β Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ.
./src/*
β ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². *
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ bin. ΠΠ»Ρ ΠΈΡ
Π·Π°ΠΏΡΡΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° java ΠΈΠ· ΡΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠ°ΠΊΠΆΠ΅ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ:
java -classpath ./bin BoxMachine
-classpath
β ΡΠ»Π°Π³, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ². Java Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ°ΡΡ Π³Π»Π°Π²Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈ Π²ΡΠ΅ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
./bin
β Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ.
BoxMachine
β Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ°ΠΊ ΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ .class
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°, Π° Π½Π΅ ΡΠ°ΠΉΠ»Π°.
ΠΡΠ²ΠΎΠ΄:
D:\Java>java -classpath ./bin src.BoxMachine
Box have size 4.085985295359718
Box have size 8.63682158248986
Box have size 6.027448124299726
Box have size 7.288317703877914
Box have size 1.106181659384694
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ JAR-ΡΠ°ΠΉΠ»ΠΎΠ²
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π² jar-ΡΠ°ΠΉΠ» β Π°ΡΡ ΠΈΠ² ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ zip ΠΈΠ»ΠΈ rar-Π°ΡΡ ΠΈΠ²ΠΎΠ² β Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°. Π ΡΡΠΎΠΌ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π³Π»Π°Π²Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ jar-ΡΠ°ΠΉΠ»Π°, classpath, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ. Π Π³Π»Π°Π²Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» manifest.mf. ΠΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ:
main-class: src.BoxMachine
class-path: bin/
main-class
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ main
ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅.
class-path
β ΠΏΡΡΡ ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ.
ΠΠ°ΡΡΠ°Π»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΎΠ±ΡΠ°ΡΡ Π½Π°ΡΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±Π΅Π· IDE Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ jar:
jar -cmf manifest.mf box-machine.jar -C bin .
-cmf
β ΡΠ»Π°Π³, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°.
manifest.mf
β ΠΏΡΡΡ ΠΊ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΡ.
box-machine.jar
β Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²ΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ jar-ΡΠ°ΠΉΠ»Π°.
-Π‘
β ΡΠ»Π°Π³, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΡΡ ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ.
.
β ΠΏΡΡΡ, ΠΊΡΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ jar-ΡΠ°ΠΉΠ». Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ βΡΡΠΎ Π³Π»Π°Π²Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ. ΠΠ°ΠΏΡΡΠΊ jar-ΡΠ°ΠΉΠ»ΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ java, Π½ΠΎ ΡΠ»Π΅Π΄ΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ»Π°Π³ -jar
: ΠΎΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Jar-ΡΠ°ΠΉΠ», Π° Π²ΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ β ΠΏΡΡΡ ΠΊ jar
-ΡΠ°ΠΉΠ»Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅:
java -jar box-machine.jar
ΠΡΠ²ΠΎΠ΄:
Box have size 5.5495235762547965
Box have size 9.695870044165662
Box have size 2.3408385788129227
Box have size 7.2790741216674135
Box have size 2.3620854470160513
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π² Java Π±Π΅Π· IDE: ΠΎΠ±Π·ΠΎΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ±ΠΎΡΠΎΠΊ
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Ρ Π΅Π΅ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΡΡΠ΅Π΄Π½ΠΈΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ. ΠΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΠ΅Π²Π°ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΡΠ°Π·Π½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ. Π ΡΡΠ°ΡΡΡΡ, Π΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠ°Π·Ρ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π»ΡΠ±ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, Π° ΠΎΠ±ΠΈΠ»ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π·Π° Π²ΡΠ΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡ Π»ΡΠ±ΠΎΠΉ Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ Π±ΠΎΠ»ΠΈ.ΠΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Java?
Π‘Π°ΠΌΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ Π½Π° Java β ΡΡΠΎ Ant, Maven ΠΈ Gradle. Π‘ΡΠ΅Π΄ΠΈ Π½Π΅Ρ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΠΈΠ»ΠΈ Ρ ΠΎΡΠΎΡΠ΅ΠΉ: ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½Π° Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.Ant
Ant β ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ xml-ΡΠ°ΠΉΠ»Π°. Π‘ΡΡΡΠΊΡΡΡΠ° xml-ΡΠ°ΠΉΠ»Π°:<?xml version="1.0"?>
<project name="ΠΈΠΌΡΠΡΠΎΠ΅ΠΊΡΠ°" default="ΡΡΠ΅Π½Π°ΡΠΈΠΉΠΠΎΠ£ΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ">
<target name="ΠΈΠΌΡΠ‘ΡΠ΅Π½Π°ΡΠΈΡ">
// ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΡ
<echo>Hello, World!</echo>
</target>
// ΠΡΠΎΡΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ
// Π ΡΠ΄
</project>
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ°ΠΉΠ» build.xml ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ:
<?xml version="1.0"?>
<project name="BoxMachine" default="test">
<target name="test">
<echo>First build in Ant!</echo>
</target>
</project>
Π ΡΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ant:
D:\Java>D:\Temp\ant\bin\ant
Buildfile: D:\Java\build.xml
test:
[echo] First build in Ant!
BUILD SUCCESSFUL
Total time: 0 seconds
Π ΡΠ΅Π³Π΅ <target>
ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ±ΠΎΡΠΊΠΎΠΉ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ. Π£ Ant Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ 150 Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·Π°Π½Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ 5:
mkdir β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ delete
β ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉjavac
β ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ JavaβΠΊΠΎΠ΄Π°java
β Π·Π°ΠΏΡΡΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
<?xml version="1.0"?>
<project name="BoxMachine" default="compile">
<target name="compile">
<mkdir dir="result/classes"/>
<javac destdir="result/classes" includeantruntime="false">
<src path="src"/>
</javac>
</target>
<target name="run" depends="compile">
<java classname="BoxMachine" classpath="result/classes"/>
</target>
<target name="clean">
<delete dir="result"/>
</target>
</project>
Π ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ β compile
, ,code>run ΠΈ clean
.
compile
ΡΠΎΠ·Π΄Π°Π΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ result, Π² Π½Π΅ΠΉ classes, Π·Π°ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ javac ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ.
run
Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ java.
clean
ΡΠ΄Π°Π»ΡΠ΅Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ result.
ΠΡΠ»ΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ant Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π·Π°ΠΏΡΡΡΠΈΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ compile. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π΅Π³ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅.
D:\Java>D:/Temp/ant/bin/ant compile
Buildfile: D:\Java\build.xml
compile:
[mkdir] Created dir: D:\Java\result\classes
[javac] Compiling 2 source files to D:\Java\result\classes
BUILD SUCCESSFUL
Total time: 1 second
Maven
Maven ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². ΠΠ΄Π΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΊΠΎΡΠ΅Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Ant, Π³Π΄Π΅ ΡΠ±ΠΎΡΠΊΠ° β ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. Maven ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΡΡΠ΅Π΄ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΠ΅Π΄Π°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Maven ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°: ΠΡΠ°Π²ΠΈΠ»Π° ΡΠ±ΠΎΡΠΊΠΈ, Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ pom.xml. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Maven ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°ΠΉΠ»Π°, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ . Π Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΡΠ΄ΠΎΠΌ Ρ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ bin ΠΈ src ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΉΠ» pom.xml, Π²Π½ΡΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ:<project>
<modelVersion>4.0.0</modelVersion>
<groupId>ru.javarush.testmaven</groupId>
<artifactId>testMavenWithoutIde</artifactId>
<version>1.0.0</version>
<build>
<defaultGoal>compile</defaultGoal>
<sourceDirectory>src</sourceDirectory>
<outputDirectory>bin</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
</build>
</project>
ΠΠ°Π»Π΅Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mvn:
D:\Java>mvn
[INFO] Scanning for projects...
[INFO]
[INFO] -------------< ru.javarush.testmaven:testMavenWithoutIde >--------------
[INFO] Building testMavenWithoutIde 1.0.0
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ testMavenWithoutIde ---
[WARNING] Using platform encoding (Cp1251 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory D:\Java\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ testMavenWithoutIde ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1251, i.e. build is platform dependent!
[INFO] Compiling 2 source files to D:\Java\bin
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15.521 s
[INFO] Finished at: 2019-06-25T20:18:05+03:00
[INFO] ------------------------------------------------------------------------
Π’Π΅ΠΏΠ΅ΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ bin Π΅ΡΡΡ ΠΏΠ°ΠΏΠΊΠ° src, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ. Π pom.xml Π² ΡΠ΅Π³Π΅ build ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠ΅Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ β ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π£ Maven Π΅ΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π»Π΅ΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Jar-ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ±ΠΎΡΠΊΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ
Π·Π°Π΄Π°Ρ.
Gradle
ΠΡΠΎ ΡΠ°ΠΌΠ°Ρ ΠΌΠΎΠ»ΠΎΠ΄Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π° Ant ΠΈ Maven. ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅ β ΡΠ°Π±ΠΎΡΠ° Π½Π° Π±Π°Π·Π΅ Π°ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π³ΡΠ°ΡΠ° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°Π΄Π°ΡΠ°Ρ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΠ΅ΠΊΡΠ½ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ . ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Gradle ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΏΠΎΠΊ ΠΏΡΠΎΠ΅ΠΊΡΠ° Maven. ΠΡΡΠ°ΡΠΈ, ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π² Gradle ΠΎΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ build.gradle ΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Ρ Maven. ΠΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ Π½Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ²:apply plugin: 'java'
apply plugin: 'application'
sourceSets {
main {
java {
srcDirs 'src'
}
}
}
sourceSets.main.output.classesDir = file("bin")
mainClassName = "src.BoxMachine"
defaultTasks 'compileJava', 'run'
Π ΡΠ°ΠΉΠ»Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (Π΅ΡΠ»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Maven), Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ±ΠΎΡΠΊΠΈ, ΠΈΠΌΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ° Π·Π°ΠΏΡΡΠΊ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° gradle Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, Π³Π΄Π΅ Π»Π΅ΠΆΠΈΡ ΡΠ°ΠΉΠ» build.gradle:
d:\Java>D:\Temp\gradle\bin\gradle
Welcome to Gradle 5.4.1!
Here are the highlights of this release:
- Run builds with JDK12
- New API for Incremental Tasks
- Updates to native projects, including Swift 5 support
For more details see https://docs.gradle.org/5.4.1/release-notes.html
Starting a Gradle Daemon (subsequent builds will be faster)
> Task :help
Welcome to Gradle 5.4.1.
To run a build, run gradle <task> ...
To see a list of available tasks, run gradle tasks
To see a list of command-line options, run gradle --help
To see more detail about a task, run gradle help --task <task>
For troubleshooting, visit https://help.gradle.org
BUILD SUCCESSFUL in 52s
1 actionable task: 1 executed
CHCP 1251
ΡΠΎΠΆΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ "ΠΈΠ΅ΡΠΎΠ³Π»ΠΈΡΠ°ΠΌΠΈ" Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΈΡΠΈΠ»Π»ΠΈΡΡ :)