Ako spustiť program java na počítači. Balenie a distribúcia Java desktopových aplikácií. Ak ste prekvapení výsledkom

  • 04.04.2019

Teraz nikto nevytvára programy v konzole. Pomocou vášho obľúbeného IDE sa vývojár cíti nepríjemne na cudzom počítači, kde nie je.
Keď som sa rozhodol pochopiť prácu Ant a Maven, zistil som, že nedokážem zostaviť aplikáciu bez nich v konzole.
V tomto článku som sa snažil popasovať všetky fázy návrhu demo aplikácie tak, aby som nehľadal pomoc pri každom príkaze na internete.

Od jednoduchých až po...

Každý program je zvyčajne obsiahnutý v samostatnom adresári. Moje pravidlo je vytvoriť v tomto adresári aspoň dva priečinky: src a bin. Prvý obsahuje zdrojové kódy, druhý - výsledok kompilácie. Tieto priečinky budú mať adresárovú štruktúru v závislosti od balíkov.

Jeden súbor

Môžete to urobiť bez ďalších priečinkov.
Vezmeme samotný súbor HelloWorld.java. public class HelloWorld ( public static void main(String args) ( System.out.println("Ahoj svet!"); ) )
Prejdite do adresára, kde daný súbor a vykonávať príkazy.
javac HelloWorld.java V tomto priečinku sa objaví súbor HelloWorld.class. Takže program je zostavený. Ak chcete začať
java -classpath . ahoj svet

Oddelenie binárnych súborov od zdrojov

Teraz urobíme to isté, ale s adresármi. Vytvorme adresár HelloWorld s dvoma priečinkami src a bin.
Zostavovanie
javac -d bin src/HelloWorld.java Tu sme to uviedli binárne súbory budú uchovávané v samostatný priečinok kôš a nenechajte sa zamieňať so zdrojom.

Spúšťame
java -classpath ./bin HelloWorld

Používame balíčky

A potom zrazu program prestane byť len HelloWorld. Balíkom je najlepšie dať zmysluplný a jedinečný názov. Toto pridá tento program do iného projektu bez konfliktu názvov. Po prečítaní niektorých článkov si možno pomyslíte, že názov balíka nevyhnutne potrebuje doménu. To nie je pravda. Domény sú pohodlný spôsob dosiahnuť jedinečnosť. Ak nemáte vlastnú doménu, použite účet na stránke (napríklad ru.habrahabr.mylogin). Bude to jedinečné. Všimnite si, že názvy balíkov musia byť v malými písmenami. A vyhnite sa používaniu špeciálnych znakov. Problémy vznikajú v dôsledku rôzne platformy a súborové systémy.

Umiestnime našu triedu do balíka s názvom com.qwertovsky.helloworld. Ak to chcete urobiť, pridajte riadok na začiatok súboru
balík com.qwertovsky.helloworld; V adresári src si vytvoríme ďalšie adresáre tak, aby cesta k súboru vyzerala takto: src/com/qwertovsky/helloworld/HelloWorld.java.
Zostavovanie
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java Adresár bin bude mať automaticky adresárovú štruktúru podobnú src.
HelloWorld "---bin " "---com " "---qwertovsky " "---helloworld " "---HelloWorld.class "---src "---com "---qwertovsky "-- -helloworld "---HelloWorld.java
Spúšťame
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld

Ak je v programe niekoľko súborov

Zmeňme program.
HelloWorld.java
balík com.qwertovsky.helloworld; public class HelloWorld ( public static void main(String args) ( int a=2; int b=3; Calculator calc=new Calculator(); System.out.println("Ahoj svet!"); System.out.println( a+"+"+b+"="+vypocet.sum(a,b)); ) )
Kalkulačka.java
balík com.qwertovsky.helloworld; import com.qwertovsky.helloworld.operation.Adder; public class Calculator ( public int sum(int... a) ( Adder adder=new Adder(); for(int i:a) ( adder.add(i); ) return adder.getSum(); ) )
Adder.java
balík com.qwertovsky.helloworld.operation; public class Adder ( private int sum; public Adder() ( sum=0; ) public Adder (int a) ( this.sum=a; ) public void add(int b) ( sum+=b; ) public int getSum() (vrátená suma; ) )
Zostavovanie
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java src\com\qwertovsky\helloworld\HelloWorld.java:9: nemôže nájsť symbol symbolu: class Umiestnenie kalkulačky: class com.qwertovsky.helloworld.HelloWorld Calculator calc=new kalkulačka (); ^ src\com\qwertovsky\helloworld\HelloWorld.java:9: nemôže nájsť symbol symbolu: class Umiestnenie kalkulačky: class com.qwertovsky.helloworld.HelloWorld Calculator calc=new Calculator(); ^2 chýb
Chyba vznikla v dôsledku skutočnosti, že kompilácia vyžaduje súbory so zdrojovými kódmi tried, ktoré sa používajú (trieda Kalkulačka). Adresár so súbormi musíte zadať kompilátoru pomocou kľúča -sourcepath.
Zostavovanie
javac -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
Spúšťame
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld Ahoj Word 2+3=5

Ak ste prekvapení výsledkom

Je možné spustiť debugger. Na to slúži jdb.
Najprv skompilujeme pomocou prepínača -g, aby mal debugger informácie.
javac -g -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
Spustenie ladiaceho nástroja
jdb -classpath bin -sourcepath src com.qwertovsky.helloworld.HelloWorld Inicializuje sa jdb ... >
Ladiaci program spustí svoj interný terminál na zadávanie príkazov. Pomocník k poslednému sa dá zobraziť pomocou príkazu help.
Nastavte bod prerušenia na riadku 9 v triede Kalkulačka
> zastavte sa na com.qwertovsky.helloworld.Calculator:9 Odloženie bodu zlomu com.qwertovsky.helloworld.Calculator:9. Nastaví sa po načítaní triedy.
Spúšťame na vykonanie.
> spustiť spustiť com.qwertovsky.helloworld.HelloWorld Nastaviť nezachytený java.lang.Throwable Nastaviť odložený nezachytený java.lang.Throwable > VM spustený: Nastaviť odložený bod prerušenia com.qwertovsky.helloworld.Calculator:9 Ahoj svet! Zásah do bodu zlomu: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=9 bci=0 9 Adder adder=new Adder();
Ak chcete získať orientáciu, môžete zobraziť kus zdrojový kód kde sa aktuálne nachádza kurzor.
hlavný zoznam 5 public class Kalkulačka 6 ( 7 public int sum(int... a) 8 ( 9 => Adder adder=new Adder(); 10 for(int i:a) 11 ( 12 adder.add(i); 13 ) 14 return adder.getSum();
Poďme zistiť, čo je premenná a.
main print a a = inštancia int (id=340) main dump a a = ( 2, 3 ) main stop at com.qwertovsky.helloworld.operation.Adder:19 Odloženie bodu prerušenia com.qwertovsky.helloworld.operation.Adder:19. Nastaví sa po načítaní triedy.
Pokračujme vo vykonávaní.
main cont > Nastaviť odložený bod prerušenia com.qwertovsky.helloworld.operation.Adder:19 Prístup k bodu prerušenia: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), riadok=19 bci=0 19 súčet+=b ; hlavný zoznam 15 ) 16 17 public void add(int b) 18 ( 19 => sum+=b; 20 ) 21 22 public int getSum() 23 ( 24 return sum; main print sumum = 0 main print b b = 2
Spustite kód v aktuálna linka a uvidíme, že súčet sa rovná 2.
hlavný krok > Krok dokončený: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=20 bci=10 20 ) hlavná tlač suma sum = 2
Vstúpme z triedy Sčítačka do triedy Kalkulačka, ktorá ju nazvala.
hlavný krok nahor > Krok dokončený: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), riadok=10 bci=36 10 for(int i:a)
Odstránenie bodu prerušenia
main clear com.qwertovsky.helloworld.operation.Adder:19 Odstránené: breakpoint com.qwertovsky.helloworld.operation.Adder:19 main step > Krok dokončený: "thread=main", com.qwertovsky.helloworld.Calculator.sum() , riadok=12 bci=30 12 adder.add(i);
Použitím nasledujúceho príkazu sa môžete vyhnúť vstupu do metód.
main next > Krok dokončený: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=10 bci=36 10 for(int i:a) main next > Krok dokončen: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), riadok=14 bci=42 14 return adder.getSum();
Skontrolujeme hodnotu výrazu a dokončíme vykonanie.
main eval adder.getSum() adder.getSum() = 5 main cont > 2+3=5 Aplikácia bola ukončená

Bolo by fajn otestovať

Používame JUnit.
balík com.qwertovsky.helloworld; import static org.junit.Assert.*; import java.util.Arrays; import java.util.Collection; import org.junit.Test; importovať org.junit.runner.RunWith; importovať org.junit.runners.Parameterized.Parameters; @RunWith(value=org.junit.runners.Parameterized.class) public class TestCalculator (int očakávané; int arg; @Parameters public static Collection parametre() ( return Arrays.asList(new int( ((4), (2, 2)) ,((-1),(4, -5)) ,((0),(0,0,0) ) ,((0),()) )); ) public TestCalculator(int očekávání, int arg) ( this.expected=očakávané; this.arg=arg; ) @Test public void testSum() ( Calculator c=new Calculator (); statementEquals(očakávané,c.sum(arg)); ) )
Zostavovanie
mkdir test_bin javac -classpath lib/path/junit-4.8.2.jar -sourcepath ./src -d test_bin test/com/qwertovsky/helloworld/TestCalculator.java
Spúšťame. Oddeľovač cesty k triede v systéme Windows je ";", v systéme Linux je to ":". Oba oddeľovače nefungujú v konzole Cygwin. Možno by malo fungovať „;“, ale považuje sa za oddeľovač príkazov.
java -classpath lib/path/junit-4.8.2.jar:./test_bin org.junit.runner.JUnitCore com.qwertovsky.helloworld.TestCalculator JUnit verzia 4.8.2 .... Čas: 0,031 OK (4 testy)

Vytvorme knižnicu

Trieda Kalkulačka sa ukázala ako užitočná a dá sa použiť v mnohých projektoch. Presuňme všetko, čo súvisí s triedou Kalkulačka, do samostatného projektu.
HelloWorld "---bin "---src "---com "---qwertovsky "---helloworld "---HelloWorld.java Kalkulačka "---bin "---src ""---com " "---qwertovsky " "---kalkulačka " "---Calculator.java " "---operácia " "---Adder.java "---test "---com "---qwertovsky " ---calculator "---TestCalculator.java
Zmeňte aj názvy balíkov v zdrojoch. HelloWorld.java bude musieť pridať riadok
importovať com.qwertovsky.calculator.Calculator;
Zostavovanie.
cd Calculator javac -sourcepath src -d bin src/com/qwertovsky/calculator/Calculator.java
Vytvorenie archívu pohárov
jar cvf calculator.jar -C bin . pridané manifest pridanie: com/(in = 0) (out= 0)(uložené 0%) pridanie: com/qwertovsky/(in = 0) (out= 0)(uložené 0%) pridanie: com/qwertovsky/calculator/ (in = 0) (out= 0) (uložené 0 %) pridanie: com/qwertovsky/calculator/Calculator.class(in = 497) (out= 373)(deflated 24%) pridanie: com/qwertovsky/calculator/operation /(in = 0) (out= 0)(uložené 0%) pridanie: com/qwertovsky/calculator/operation/Adder.class(in = 441) (out= 299)(deflated 32%)
Pomocou prepínača -C sme program spustili v adresári bin.

Musíme zistiť, čo má knižnica vo vnútri

Archív môžete rozbaliť pomocou rozbaľovača zipsu a zistiť, aké triedy sú v knižnici.
Informácie o akejkoľvek triede je možné získať pomocou javap disassembler.
javap -c -classpath calculator.jar com.qwertovsky.calculator.Calculator Kompilované z verejnej triedy "Calculator.java" com.qwertovsky.calculator.Calculator rozširuje java.lang.Object( public com.qwertovsky.calculator.Calculator(); Kód : 0: aload_0 1: invokespecial #1; //Metóda java/lang/Object." ":()V 4: return public int sum(int); Kód: 0: new #2; //class com/qwertovsky/calculator/operation/Adder 3: dup 4: invokespecial #3; //Metóda com/qwertovsky /kalkulačka/prevádzka/Sčítačka." ":()V 7: astore_2 8: aload_1 9: astore_3 10: aload_3 11: dĺžka poľa 12: istore 4 14: iconst_0 15: istore 5 17: iload 5 19: iload 4 21: if_icmpge 42_325: aload 27: iaload 28: istore 6 30: aload_2 31: iload 6 33: invokevirtual #4; //Metóda com/qwertovsky/calculator/operation/Adder.add:(I)V 36: iinc 5, 1 39: goto 17 42 : aload_2 43: invokevirtual #5 //Method com/qwertovsky/calculator/operation/Adder.getSum:()I 46: ireturn )
Z výsledku je vidieť, že trieda obsahuje okrem prázdneho konštruktora aj ďalšiu metódu súčtu, vnútri ktorej sa v slučke volá metóda add triedy Adder. Po dokončení metódy súčtu sa zavolá Adder.getSum().
Bez prepínača -c program poskytne iba zoznam premenných a metód (ak použijete -private, tak všetky).
javap -private -classpath calculator.jar com.qwertovsky.calculator.operation.Adder Kompilované z verejnej triedy "Adder.java" com.qwertovsky.calculator.operation.Adder rozširuje java.lang.Object( private int sum; public com.qwertovsky .calculator.operation.Adder(); public com.qwertovsky.calculator.operation.Adder(int); public void add(int); public int getSum(); )

Je lepšie zdokumentovať knižnicu

Zmeňme na to triedu kalkulačky.
balík com.qwertovsky.calculator; importovať com.qwertovsky.calculator.operation.Adder; /** * Kalkulačka, ktorá dokáže pridať * @author Qwertovsky * */ public class Kalkulačka ( /** * Určte súčet termínov * @param pole výrazov * @return sum */ public int sum(int... a ) ( Adder adder=new Adder(); for(int i:a) ( adder.add(i); ) return adder.getSum(); ) )
Dokumentáciu je možné vygenerovať pomocou nasledujúceho príkazu. Ak sa vyskytne chyba, program zobrazí zoznam možných možností.
mkdir doc javadoc -d doc -charset utf-8 -sourcepath src -author -subpackages com.qwertovsky.calculator
Výsledok bude nasledovný

jar archív možno podpísať

Ak potrebujete podpísať svoju knižnicu digitálnym podpisom, kľúčový nástroj a jarsigner vám prídu na pomoc.
Vygenerujeme podpis.
keytool -genkey -keyalg rsa -keysize 2048 -alias qwertokey -keystore path/to/qwerto.keystore Zadajte heslo úložiska kľúčov: Znova zadajte nové heslo: Aké je vaše meno a priezvisko? : Valery Qwertovsky Ako sa volá vaša organizačná jednotka? : Qwertovsky Ako sa volá vaša organizácia? : Qwertovsky Ako sa volá vaše mesto alebo lokalita? : Tver Aký je názov vášho štátu alebo provincie? : Tverskaja obl. Čo je to dvojpísmenová krajina kód pre táto jednotka? : RU Je CN=Valery Qwertovsky, OU=Qwertovsky, O=Qwertovsky, L=Tver, ST=Tverskaya obl., C=RU správne? : y Zadajte heslo kľúča pre (RETURN, ak je rovnaké ako heslo úložiska kľúčov): Znova zadajte nové heslo:
Generovanie žiadosti o podpis certifikátu (CSR)
keytool -certreq -cesta k súboru/k/qwertokey.crt -alias qwertokey -keystore cesta/k/qwerto.keystore
Obsah prijatého súboru odošleme certifikačnej autorite. Dostávame certifikát od certifikačnej autority. Uložíme ho do súboru (napríklad qwertokey.cer) a naimportujeme do úložiska
keytool -import -trustcacerts -keystore path/to/qwert.keystore -alias qwertokey -file path/to/qwertokey.cer
Podpisovanie archívu jar
jarsigner -keystore path/to/qwerto.keystore calculator.jar qwertokey
Súbor qwertokey.cer posielame každému, kto chce skontrolovať archív. Kontroluje sa to takto
jarsigner -verify -verbose -certs -keystore path/to/qwerto.keystore calculator.jar

Používanie knižnice

Existuje program HelloWorld, ktorý používa triedu knižnice Kalkulačka. Ak chcete skompilovať a spustiť program, musíte zahrnúť knižnicu.
Zostavovanie
cd HelloWorld javac -sourcepath src -d bin -classpath path/to/calculator.jar src/com/qwertovsky/helloworld/HelloWorld.java
Spúšťame
java -classpath bin:path/to/calculator.jar com.qwertovsky.helloworld.HelloWorld

Zostavovanie programu

Dá sa to urobiť rôznymi spôsobmi.

Prvý spôsob

cd HelloWorld echo main-class: com.qwertovsky.helloworld.HelloWorld>manifest.mf echo class-path: lib/calculator.jar >>manifest.mf mkdir lib cp path/to/calculator.jar lib/calculator.jar jar - cmf manifest.mf helloworld.jar -C bin .
Sú tu jemnosti.
V rade
hlavná trieda: com.qwertovsky.helloworld.HelloWorld
na konci by nemali byť žiadne medzery.
Druhá jemnosť je opísaná v: v tom istom riadku by mal byť prevod do ďalší riadok. Je to v prípade, ak je manifest archivovaný archivátorom tretej strany.
jar program nezahrnie do manifestu posledný riadok z manifestu, ak na konci nie je zalomenie riadku.
Ďalší bod: v manifeste by nemalo byť prázdne riadky medzi riadkami. Vyvolá sa chyba „java.io.IOException: neplatný formát manifestu“.

Pri použití príkazu echo stačí sledovať medzeru na konci riadku hlavnej triedy.

Druhý spôsob

cd HelloWorld echo class-path: lib/calculator.jar >manifest.mf mkdir lib cp path/to/calculator.jar lib/calculator.jar jar -cmef manifest.mf com.qwertovsky.helloworld.HelloWorld helloworld.jar -C bin .
AT túto metódu vyhnúť sa chybe medzi bielymi znakmi v hlavnej triede.

Tretia cesta

cd HelloWorld mkdir lib cd lib jar -xvf cesta/k/calculator.jar com/ vytvorené: com/ vytvorené: com/qwertovsky/ vytvorené: com/qwertovsky/calculator/ nafúknuté: com/qwertovsky/calculator/Calculator.class created: com /qwertovsky/calculator/operation/ nafúknutý: com/qwertovsky/calculator/operation/Adder.class cd .. cp -r bin/* lib/ jar -cef com.qwertovsky.helloworld.HelloWorld helloworld.jar -C lib . rm -r lib
Obsahuje kód požadovanej knižnice spustiteľný súbor.

Spustenie spustiteľného súboru jar

Súbor calculator.jar nie je spustiteľný. Ale helloworld.jar sa dá spustiť.
Ak bol archív vytvorený prvými dvoma spôsobmi, potom by vedľa neho v rovnakom adresári mal byť priečinok lib so súborom calculator.jar. Takéto obmedzenia sú spôsobené skutočnosťou, že cesta týkajúca sa spustiteľného súboru je uvedená v ceste k triede v manifeste.
cd Calculator ls ../HelloWorld/lib calculator.jar java-jar../HelloWorld/helloworld.jar
Pri použití tretej metódy požadované knižnice zahrnuté v spustiteľnom súbore. Nemusíte mať v blízkosti potrebné knižnice. Beží rovnakým spôsobom.
java -jar ../HelloWorld/helloworld.jar

Ako sa vysporiadať s JavaEE aplikáciami

Podobne. Z aplikačného servera, ktorý sa používa, je potrebné prevziať iba knižnice na kompiláciu. Ak používam JBoss, na kompiláciu servletu by som musel urobiť niečo také
javac -classpath path/to/jboss/common/lib/jboss-servlet*.jar -d ./classes src/com/qwertovsky/app/servlets/MenuSt.java
Štruktúra archívu aplikácií JavaEE musí mať určitý formát. Napríklad
my.ear `---META-INF | `---manifest.mf `---lib | `---mylib.jar `---my.war | `---META-INF | | `---manifest.mf | `---WEB-INF | | `---lib | | | `---myweblib.jar | | `---triedy | | | `---com | | | `---... | | `---web.xml | `---index.html | `---<остальное веб-содержимое (страницы, изображения)>`---myejb.jar
Spôsob spustenia aplikácie na samotnom serveri pomocou príkazového riadku je pre každý server odlišný.

Dúfam, že tento článok sa pre niekoho stane cheatom pre prácu s Java na príkazovom riadku. Tieto zručnosti vám pomôžu pochopiť obsah a význam Ant skriptov a odpovedať na zložitejšie otázky na pohovoroch ako „Ktoré IDE sa vám páči najviac?“.

Teraz nikto nevytvára programy v konzole. Pomocou vášho obľúbeného IDE sa vývojár cíti nepríjemne na cudzom počítači, kde nie je.
Keď som sa rozhodol pochopiť prácu Ant a Maven, zistil som, že nedokážem zostaviť aplikáciu bez nich v konzole.
V tomto článku som sa snažil popasovať všetky fázy návrhu demo aplikácie tak, aby som nehľadal pomoc pri každom príkaze na internete.

Od jednoduchých až po...

Každý program je zvyčajne obsiahnutý v samostatnom adresári. Moje pravidlo je vytvoriť v tomto adresári aspoň dva priečinky: src a bin. Prvý obsahuje zdrojové kódy, druhý - výsledok kompilácie. Tieto priečinky budú mať adresárovú štruktúru v závislosti od balíkov.

Jeden súbor

Môžete to urobiť bez ďalších priečinkov.
Vezmeme samotný súbor HelloWorld.java. public class HelloWorld ( public static void main(String args) ( System.out.println("Ahoj svet!"); ) )
Prejdite do adresára, kde sa nachádza tento súbor a vykonajte príkazy.
javac HelloWorld.java V tomto priečinku sa objaví súbor HelloWorld.class. Takže program je zostavený. Ak chcete začať
java -classpath . ahoj svet

Oddelenie binárnych súborov od zdrojov

Teraz urobíme to isté, ale s adresármi. Vytvorme adresár HelloWorld s dvoma priečinkami src a bin.
Zostavovanie
javac -d bin src/HelloWorld.java Tu sme naznačili, že binárne súbory budú uložené v samostatnom priečinku bin a nebudú sa zamieňať so zdrojmi.

Spúšťame
java -classpath ./bin HelloWorld

Používame balíčky

A potom zrazu program prestane byť len HelloWorld. Balíkom je najlepšie dať zmysluplný a jedinečný názov. To vám umožní pridať tento program do iného projektu bez konfliktu mien. Po prečítaní niektorých článkov si možno pomyslíte, že názov balíka nevyhnutne potrebuje doménu. To nie je pravda. Domény sú pohodlným spôsobom, ako dosiahnuť jedinečnosť. Ak nemáte vlastnú doménu, použite účet na stránke (napríklad ru.habrahabr.mylogin). Bude to jedinečné. Upozorňujeme, že názvy balíkov musia byť napísané malými písmenami. A vyhnite sa používaniu špeciálnych znakov. Problémy vznikajú v dôsledku rôznych platforiem a súborových systémov.

Umiestnime našu triedu do balíka s názvom com.qwertovsky.helloworld. Ak to chcete urobiť, pridajte riadok na začiatok súboru
balík com.qwertovsky.helloworld; V adresári src si vytvoríme ďalšie adresáre tak, aby cesta k súboru vyzerala takto: src/com/qwertovsky/helloworld/HelloWorld.java.
Zostavovanie
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java Adresár bin bude mať automaticky adresárovú štruktúru podobnú src.
HelloWorld "---bin " "---com " "---qwertovsky " "---helloworld " "---HelloWorld.class "---src "---com "---qwertovsky "-- -helloworld "---HelloWorld.java
Spúšťame
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld

Ak je v programe niekoľko súborov

Zmeňme program.
HelloWorld.java
balík com.qwertovsky.helloworld; public class HelloWorld ( public static void main(String args) ( int a=2; int b=3; Calculator calc=new Calculator(); System.out.println("Ahoj svet!"); System.out.println( a+"+"+b+"="+vypocet.sum(a,b)); ) )
Kalkulačka.java
balík com.qwertovsky.helloworld; import com.qwertovsky.helloworld.operation.Adder; public class Calculator ( public int sum(int... a) ( Adder adder=new Adder(); for(int i:a) ( adder.add(i); ) return adder.getSum(); ) )
Adder.java
balík com.qwertovsky.helloworld.operation; public class Adder ( private int sum; public Adder() ( sum=0; ) public Adder (int a) ( this.sum=a; ) public void add(int b) ( sum+=b; ) public int getSum() (vrátená suma; ) )
Zostavovanie
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java src\com\qwertovsky\helloworld\HelloWorld.java:9: nemôže nájsť symbol symbolu: class Umiestnenie kalkulačky: class com.qwertovsky.helloworld.HelloWorld Calculator calc=new kalkulačka (); ^ src\com\qwertovsky\helloworld\HelloWorld.java:9: nemôže nájsť symbol symbolu: class Umiestnenie kalkulačky: class com.qwertovsky.helloworld.HelloWorld Calculator calc=new Calculator(); ^2 chýb
Chyba vznikla v dôsledku skutočnosti, že kompilácia vyžaduje súbory so zdrojovými kódmi tried, ktoré sa používajú (trieda Kalkulačka). Adresár so súbormi musíte zadať kompilátoru pomocou kľúča -sourcepath.
Zostavovanie
javac -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
Spúšťame
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld Ahoj Word 2+3=5

Ak ste prekvapení výsledkom

Je možné spustiť debugger. Na to slúži jdb.
Najprv skompilujeme pomocou prepínača -g, aby mal debugger informácie.
javac -g -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
Spustenie ladiaceho nástroja
jdb -classpath bin -sourcepath src com.qwertovsky.helloworld.HelloWorld Inicializuje sa jdb ... >
Ladiaci program spustí svoj interný terminál na zadávanie príkazov. Pomocník k poslednému sa dá zobraziť pomocou príkazu help.
Nastavte bod prerušenia na riadku 9 v triede Kalkulačka
> zastavte sa na com.qwertovsky.helloworld.Calculator:9 Odloženie bodu zlomu com.qwertovsky.helloworld.Calculator:9. Nastaví sa po načítaní triedy.
Spúšťame na vykonanie.
> spustiť spustiť com.qwertovsky.helloworld.HelloWorld Nastaviť nezachytený java.lang.Throwable Nastaviť odložený nezachytený java.lang.Throwable > VM spustený: Nastaviť odložený bod prerušenia com.qwertovsky.helloworld.Calculator:9 Ahoj svet! Zásah do bodu zlomu: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=9 bci=0 9 Adder adder=new Adder();
Ak sa chcete zorientovať, môžete zobraziť časť zdrojového kódu na mieste, kde sa aktuálne nachádza kurzor.
hlavný zoznam 5 public class Kalkulačka 6 ( 7 public int sum(int... a) 8 ( 9 => Adder adder=new Adder(); 10 for(int i:a) 11 ( 12 adder.add(i); 13 ) 14 return adder.getSum();
Poďme zistiť, čo je premenná a.
main print a a = inštancia int (id=340) main dump a a = ( 2, 3 ) main stop at com.qwertovsky.helloworld.operation.Adder:19 Odloženie bodu prerušenia com.qwertovsky.helloworld.operation.Adder:19. Nastaví sa po načítaní triedy.
Pokračujme vo vykonávaní.
main cont > Nastaviť odložený bod prerušenia com.qwertovsky.helloworld.operation.Adder:19 Prístup k bodu prerušenia: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), riadok=19 bci=0 19 súčet+=b ; hlavný zoznam 15 ) 16 17 public void add(int b) 18 ( 19 => sum+=b; 20 ) 21 22 public int getSum() 23 ( 24 return sum; main print sumum = 0 main print b b = 2
Spustite kód v aktuálnom riadku a uvidíme, že súčet sa rovná 2.
hlavný krok > Krok dokončený: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=20 bci=10 20 ) hlavná tlač suma sum = 2
Vstúpme z triedy Sčítačka do triedy Kalkulačka, ktorá ju nazvala.
hlavný krok nahor > Krok dokončený: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), riadok=10 bci=36 10 for(int i:a)
Odstránenie bodu prerušenia
main clear com.qwertovsky.helloworld.operation.Adder:19 Odstránené: breakpoint com.qwertovsky.helloworld.operation.Adder:19 main step > Krok dokončený: "thread=main", com.qwertovsky.helloworld.Calculator.sum() , riadok=12 bci=30 12 adder.add(i);
Použitím nasledujúceho príkazu sa môžete vyhnúť vstupu do metód.
main next > Krok dokončený: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=10 bci=36 10 for(int i:a) main next > Krok dokončen: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), riadok=14 bci=42 14 return adder.getSum();
Skontrolujeme hodnotu výrazu a dokončíme vykonanie.
main eval adder.getSum() adder.getSum() = 5 main cont > 2+3=5 Aplikácia bola ukončená

Bolo by fajn otestovať

Používame JUnit.
balík com.qwertovsky.helloworld; import static org.junit.Assert.*; import java.util.Arrays; import java.util.Collection; import org.junit.Test; importovať org.junit.runner.RunWith; importovať org.junit.runners.Parameterized.Parameters; @RunWith(value=org.junit.runners.Parameterized.class) public class TestCalculator (int očakávané; int arg; @Parameters public static Collection parametre() ( return Arrays.asList(new int( ((4), (2, 2)) ,((-1),(4, -5)) ,((0),(0,0,0) ) ,((0),()) )); ) public TestCalculator(int očekávání, int arg) ( this.expected=očakávané; this.arg=arg; ) @Test public void testSum() ( Calculator c=new Calculator (); statementEquals(očakávané,c.sum(arg)); ) )
Zostavovanie
mkdir test_bin javac -classpath lib/path/junit-4.8.2.jar -sourcepath ./src -d test_bin test/com/qwertovsky/helloworld/TestCalculator.java
Spúšťame. Oddeľovač cesty k triede v systéme Windows je ";", v systéme Linux je to ":". Oba oddeľovače nefungujú v konzole Cygwin. Možno by malo fungovať „;“, ale považuje sa za oddeľovač príkazov.
java -classpath lib/path/junit-4.8.2.jar:./test_bin org.junit.runner.JUnitCore com.qwertovsky.helloworld.TestCalculator JUnit verzia 4.8.2 .... Čas: 0,031 OK (4 testy)

Vytvorme knižnicu

Trieda Kalkulačka sa ukázala ako užitočná a dá sa použiť v mnohých projektoch. Presuňme všetko, čo súvisí s triedou Kalkulačka, do samostatného projektu.
HelloWorld "---bin "---src "---com "---qwertovsky "---helloworld "---HelloWorld.java Kalkulačka "---bin "---src ""---com " "---qwertovsky " "---kalkulačka " "---Calculator.java " "---operácia " "---Adder.java "---test "---com "---qwertovsky " ---calculator "---TestCalculator.java
Zmeňte aj názvy balíkov v zdrojoch. HelloWorld.java bude musieť pridať riadok
importovať com.qwertovsky.calculator.Calculator;
Zostavovanie.
cd Calculator javac -sourcepath src -d bin src/com/qwertovsky/calculator/Calculator.java
Vytvorenie archívu pohárov
jar cvf calculator.jar -C bin . pridané manifest pridanie: com/(in = 0) (out= 0)(uložené 0%) pridanie: com/qwertovsky/(in = 0) (out= 0)(uložené 0%) pridanie: com/qwertovsky/calculator/ (in = 0) (out= 0) (uložené 0 %) pridanie: com/qwertovsky/calculator/Calculator.class(in = 497) (out= 373)(deflated 24%) pridanie: com/qwertovsky/calculator/operation /(in = 0) (out= 0)(uložené 0%) pridanie: com/qwertovsky/calculator/operation/Adder.class(in = 441) (out= 299)(deflated 32%)
Pomocou prepínača -C sme program spustili v adresári bin.

Musíme zistiť, čo má knižnica vo vnútri

Archív môžete rozbaliť pomocou rozbaľovača zipsu a zistiť, aké triedy sú v knižnici.
Informácie o akejkoľvek triede je možné získať pomocou javap disassembler.
javap -c -classpath calculator.jar com.qwertovsky.calculator.Calculator Kompilované z verejnej triedy "Calculator.java" com.qwertovsky.calculator.Calculator rozširuje java.lang.Object( public com.qwertovsky.calculator.Calculator(); Kód : 0: aload_0 1: invokespecial #1; //Metóda java/lang/Object." ":()V 4: return public int sum(int); Kód: 0: new #2; //class com/qwertovsky/calculator/operation/Adder 3: dup 4: invokespecial #3; //Metóda com/qwertovsky /kalkulačka/prevádzka/Sčítačka." ":()V 7: astore_2 8: aload_1 9: astore_3 10: aload_3 11: dĺžka poľa 12: istore 4 14: iconst_0 15: istore 5 17: iload 5 19: iload 4 21: if_icmpge 42_325: aload 27: iaload 28: istore 6 30: aload_2 31: iload 6 33: invokevirtual #4; //Metóda com/qwertovsky/calculator/operation/Adder.add:(I)V 36: iinc 5, 1 39: goto 17 42 : aload_2 43: invokevirtual #5 //Method com/qwertovsky/calculator/operation/Adder.getSum:()I 46: ireturn )
Z výsledku je vidieť, že trieda obsahuje okrem prázdneho konštruktora aj ďalšiu metódu súčtu, vnútri ktorej sa v slučke volá metóda add triedy Adder. Po dokončení metódy súčtu sa zavolá Adder.getSum().
Bez prepínača -c program poskytne iba zoznam premenných a metód (ak použijete -private, tak všetky).
javap -private -classpath calculator.jar com.qwertovsky.calculator.operation.Adder Kompilované z verejnej triedy "Adder.java" com.qwertovsky.calculator.operation.Adder rozširuje java.lang.Object( private int sum; public com.qwertovsky .calculator.operation.Adder(); public com.qwertovsky.calculator.operation.Adder(int); public void add(int); public int getSum(); )

Je lepšie zdokumentovať knižnicu

Zmeňme na to triedu kalkulačky.
balík com.qwertovsky.calculator; importovať com.qwertovsky.calculator.operation.Adder; /** * Kalkulačka, ktorá dokáže pridať * @author Qwertovsky * */ public class Kalkulačka ( /** * Určte súčet termínov * @param pole výrazov * @return sum */ public int sum(int... a ) ( Adder adder=new Adder(); for(int i:a) ( adder.add(i); ) return adder.getSum(); ) )
Dokumentáciu je možné vygenerovať pomocou nasledujúceho príkazu. Ak sa vyskytne chyba, program zobrazí zoznam možných možností.
mkdir doc javadoc -d doc -charset utf-8 -sourcepath src -author -subpackages com.qwertovsky.calculator
Výsledok bude nasledovný

jar archív možno podpísať

Ak potrebujete podpísať svoju knižnicu digitálnym podpisom, kľúčový nástroj a jarsigner vám prídu na pomoc.
Vygenerujeme podpis.
keytool -genkey -keyalg rsa -keysize 2048 -alias qwertokey -keystore path/to/qwerto.keystore Zadajte heslo úložiska kľúčov: Znova zadajte nové heslo: Aké je vaše meno a priezvisko? : Valery Qwertovsky Ako sa volá vaša organizačná jednotka? : Qwertovsky Ako sa volá vaša organizácia? : Qwertovsky Ako sa volá vaše mesto alebo lokalita? : Tver Aký je názov vášho štátu alebo provincie? : Tverskaja obl. Aký je dvojpísmenový kód krajiny pre túto jednotku? : RU Je CN=Valery Qwertovsky, OU=Qwertovsky, O=Qwertovsky, L=Tver, ST=Tverskaya obl., C=RU správne? : y Zadajte heslo kľúča pre (RETURN, ak je rovnaké ako heslo úložiska kľúčov): Znova zadajte nové heslo:
Generovanie žiadosti o podpis certifikátu (CSR)
keytool -certreq -cesta k súboru/k/qwertokey.crt -alias qwertokey -keystore cesta/k/qwerto.keystore
Obsah prijatého súboru odošleme certifikačnej autorite. Dostávame certifikát od certifikačnej autority. Uložíme ho do súboru (napríklad qwertokey.cer) a naimportujeme do úložiska
keytool -import -trustcacerts -keystore path/to/qwert.keystore -alias qwertokey -file path/to/qwertokey.cer
Podpisovanie archívu jar
jarsigner -keystore path/to/qwerto.keystore calculator.jar qwertokey
Súbor qwertokey.cer posielame každému, kto chce skontrolovať archív. Kontroluje sa to takto
jarsigner -verify -verbose -certs -keystore path/to/qwerto.keystore calculator.jar

Používanie knižnice

Existuje program HelloWorld, ktorý používa triedu knižnice Kalkulačka. Ak chcete skompilovať a spustiť program, musíte zahrnúť knižnicu.
Zostavovanie
cd HelloWorld javac -sourcepath src -d bin -classpath path/to/calculator.jar src/com/qwertovsky/helloworld/HelloWorld.java
Spúšťame
java -classpath bin:path/to/calculator.jar com.qwertovsky.helloworld.HelloWorld

Zostavovanie programu

Dá sa to urobiť rôznymi spôsobmi.

Prvý spôsob

cd HelloWorld echo main-class: com.qwertovsky.helloworld.HelloWorld>manifest.mf echo class-path: lib/calculator.jar >>manifest.mf mkdir lib cp path/to/calculator.jar lib/calculator.jar jar - cmf manifest.mf helloworld.jar -C bin .
Sú tu jemnosti.
V rade
hlavná trieda: com.qwertovsky.helloworld.HelloWorld
na konci by nemali byť žiadne medzery.
Druhá jemnosť je opísaná v: v tom istom riadku by mal byť prechod na ďalší riadok. Je to v prípade, ak je manifest archivovaný archivátorom tretej strany.
Program jar nezahrnie posledný riadok z manifestu do manifestu, pokiaľ na konci nie je zalomenie riadku.
Ďalší bod: v manifeste by medzi riadkami nemali byť prázdne riadky. Vyvolá sa chyba „java.io.IOException: neplatný formát manifestu“.

Pri použití príkazu echo stačí sledovať medzeru na konci riadku hlavnej triedy.

Druhý spôsob

cd HelloWorld echo class-path: lib/calculator.jar >manifest.mf mkdir lib cp path/to/calculator.jar lib/calculator.jar jar -cmef manifest.mf com.qwertovsky.helloworld.HelloWorld helloworld.jar -C bin .
Týmto spôsobom sa vyhneme chybe s medzerou v hlavnej triede.

Tretia cesta

cd HelloWorld mkdir lib cd lib jar -xvf cesta/k/calculator.jar com/ vytvorené: com/ vytvorené: com/qwertovsky/ vytvorené: com/qwertovsky/calculator/ nafúknuté: com/qwertovsky/calculator/Calculator.class created: com /qwertovsky/calculator/operation/ nafúknutý: com/qwertovsky/calculator/operation/Adder.class cd .. cp -r bin/* lib/ jar -cef com.qwertovsky.helloworld.HelloWorld helloworld.jar -C lib . rm -r lib
Zahrnutý kód požadovanej knižnice do spustiteľného súboru.

Spustenie spustiteľného súboru jar

Súbor calculator.jar nie je spustiteľný. Ale helloworld.jar sa dá spustiť.
Ak bol archív vytvorený prvými dvoma spôsobmi, potom by vedľa neho v rovnakom adresári mal byť priečinok lib so súborom calculator.jar. Takéto obmedzenia sú spôsobené skutočnosťou, že cesta týkajúca sa spustiteľného súboru je uvedená v ceste k triede v manifeste.
cd Calculator ls ../HelloWorld/lib calculator.jar java -jar ../HelloWorld/helloworld.jar
Pri použití tretej metódy sú požadované knižnice zahrnuté do spustiteľného súboru. Nemusíte mať v blízkosti potrebné knižnice. Beží rovnakým spôsobom.
java -jar ../HelloWorld/helloworld.jar

Ako sa vysporiadať s JavaEE aplikáciami

Podobne. Z aplikačného servera, ktorý sa používa, je potrebné prevziať iba knižnice na kompiláciu. Ak používam JBoss, na kompiláciu servletu by som musel urobiť niečo také
javac -classpath path/to/jboss/common/lib/jboss-servlet*.jar -d ./classes src/com/qwertovsky/app/servlets/MenuSt.java
Štruktúra archívu aplikácií JavaEE musí mať určitý formát. Napríklad
my.ear `---META-INF | `---manifest.mf `---lib | `---mylib.jar `---my.war | `---META-INF | | `---manifest.mf | `---WEB-INF | | `---lib | | | `---myweblib.jar | | `---triedy | | | `---com | | | `---... | | `---web.xml | `---index.html | `---<остальное веб-содержимое (страницы, изображения)>`---myejb.jar
Spôsob spustenia aplikácie na samotnom serveri pomocou príkazového riadku je pre každý server odlišný.

Dúfam, že tento článok sa pre niekoho stane cheatom pre prácu s Java na príkazovom riadku. Tieto zručnosti vám pomôžu pochopiť obsah a význam Ant skriptov a odpovedať na zložitejšie otázky na pohovoroch ako „Ktoré IDE sa vám páči najviac?“.

Mnoho začínajúcich programátorov sa stretáva s touto otázkou: „Vytvoril som svoju aplikáciu v IDE ako ju teraz spustím z príkazového riadku mimo IDE?". Ďalšia otázka, ktorá by mohla vzniknúť, je „Ako môžem distribuovať túto aplikáciu iným používateľom bez toho, aby som im dala súčasne celé IDE?".

Odpovede na tieto otázky sú pomerne jednoduché, no nie vždy jednoznačné. AT tento dokument odpovedá na ne demonštrovaním základov používania IDE na prípravu aplikácií na distribúciu a nasadenie. Okrem toho tento dokument poskytuje informácie, ktoré môžu byť potrebné na nastavenie systému programátora (alebo ktoré bude potrebné oznámiť používateľom aplikácie). Ukážeme niekoľko rôznych prístupov k nasadeniu aplikácie, ktoré používateľom umožnia pristupovať k nej prostredníctvom:

  • Dvakrát kliknite na súbor archívu Java (JAR) aplikácie.
  • Volanie aplikácie z príkazového riadku.
  • Volanie aplikácie zo súboru skriptu.
  • Používanie Java spustenie webu.

Tento tutoriál vyžaduje softvér a materiály uvedené v tabuľke nižšie.

Vytvorenie spustiteľného súboru JAR

Táto časť návodu vám ukáže, ako môžete vytvoriť redistribuovateľnú aplikáciu v IDE a potom spustiť aplikáciu mimo IDE. Túto aplikáciu zabalíme do spustiteľného súboru JAR.

Súbor JAR je archívny súbor, ktorý môže obsahovať súbory a priečinky. Súbory JAR sú podobné súborom ZIP, ale súbory JAR môžu mať ďalšie atribúty užitočné na distribúciu. Java aplikácie. Tieto atribúty zahŕňajú digitálny podpis súborov JAR, voliteľnú kompresiu, kompatibilitu medzi platformami atď.

V tomto cvičení vytvoríme projekt IDE a potom do projektu umiestnime dva vopred napísané zdrojové súbory Java. Potom skompilujeme triedy a vytvoríme spustiteľný súbor JAR. Potom uvidíme, ako spustiť súbory JAR mimo IDE.

Triedy používané v túto príručku, implementovať funkcie obslužný program GNU grep , ktorý možno použiť na vyhľadávanie vzorov textu alebo regulárnych výrazov v textové súbory. Tento projekt obsahuje verziu aplikácie pre príkazový riadok aj verziu, ktorá sa používa GUI, ktorý vám umožní pozrieť sa na rôznymi spôsobmi spustenie aplikácie.

Vytváranie projektu pomocou existujúcich súborov zdrojového kódu

  1. Distribúcia aplikácie iným používateľom

    Teraz, keď ste potvrdili, že vaša aplikácia funguje mimo IDE, môžete prejsť k jej distribúcii.

    Poznámka. Ak vaša aplikácia závisí od ďalších knižníc iných ako tých, ktoré sú súčasťou JDK, musíte ich zahrnúť do svojej distribúcie (neplatí pre tento príklad). Relatívne cesty k týmto knižniciam sa pridajú do položky classpath súboru manifestu JAR, keď je aplikácia vyvinutá v IDE. Ak sa tieto dodatočné knižnice nenachádzajú v špecifikovaná cesta trieda (t.j. relatívna cesta) pri spustení sa aplikácia nespustí.
    Vytvorte archív ZIP obsahujúci súbor JAR a knižnicu a potom ho nahrajte súbor ZIP používateľov. Poučte používateľov, aby rozbalili tento archív ZIP, aby sa súbor JAR a súbory JAR knižnice nachádzali v rovnakom priečinku. Spustite súbor jar aplikácie.

    Spustenie aplikácie Java

    Účelom tohto cvičenia je ukázať niektoré spôsoby spúšťania aplikácie z príkazového riadku.

    Toto cvičenie ukazuje, ako môžete spustiť aplikáciu Java nasledujúcimi dvoma spôsobmi:

    • Spustenie príkazu java z príkazového riadku.
    • Použitie skriptu na volanie triedy v súbore JAR.

    Spúšťanie aplikácií z príkazového riadku

    Aplikáciu je možné spustiť z príkazového riadku pomocou príkazu java. Ak chcete spustiť spustiteľný súbor JAR, použite voľbu -jar príkazu.

    Ak chcete napríklad spustiť aplikáciu AnotherGrep, postupujte takto:

    1. Otvorte okno terminálu. Na systémoch Microsoft Windows to urobíte kliknutím na tlačidlo "Štart" a výberom možnosti "Spustiť...", zadaním cmd do poľa "Otvoriť:" a kliknutím na tlačidlo "OK".
    2. Prejdite do adresára PROJECT_HOME/dist (pomocou príkazu cd).
    3. Zadajte nasledujúci riadok na spustenie hlavnej triedy aplikácie: java -jar AnotherGrep.jar

    Ak sa budete riadiť týmito pokynmi a aplikácia sa nespustí, pravdepodobne by ste mali urobiť jeden z nasledujúcich krokov: Ďalšie kroky:

    Spúšťanie aplikácií zo skriptu

    Ak je aplikácia, ktorú chcete distribuovať, konzolová aplikácia, môže byť pre vás pohodlnejšie spustiť ju zo skriptu, najmä ak aplikácia vyžaduje na spustenie dlhé a zložité argumenty. V tejto časti používame konzolovú verziu Grepu, v ktorej musíme odovzdať argumenty (vyhľadávací vzor a zoznam súborov) súboru JAR, ktorý sa volá v našom skripte. Aby sme znížili množstvo písania na príkazovom riadku, používame jednoduchý skript vhodný na spustenie testovacej aplikácie.

    Prvým krokom je zmena hlavnej triedy v aplikácii na konzolovú verziu triedy a opätovné zostavenie súboru JAR:

    1. V okne Projekty v IDE kliknite na kliknite pravým tlačidlom myši prejdite myšou nad uzol projektu (AnotherGrep) a vyberte "Vlastnosti".
    2. Vyberte uzol Run a zmeňte vlastnosť Main Class na othergrep.Grep (z othergrep.xGrep). Kliknutím na tlačidlo OK zatvorte okno Vlastnosti projektu.
    3. Znova kliknite pravým tlačidlom myši na uzol projektu a vyberte možnosť Vyčistiť a zostaviť projekt.

    Po dokončení týchto krokov bude súbor JAR prebudovaný a atribút Main-Class v manifeste súboru JAR bude ukazovať na othergrep.Grep .

    bash skript - pre počítače so systémom UNIX a Linux

    V priečinku, kde bol extrahovaný obsah súboru, nájdete bash skript s názvom grep.sh . Poďme sa na to pozrieť:

    #!/bin/bash java -jar dist/AnotherGrep.jar [e-mail chránený]

    Prvý riadok určuje, ktorý interpret príkazov sa má použiť na interpretáciu tohto skriptu. Druhý spustí súbor JAR vytvorený IDE v priečinku PROJECT_HOME/vzd. [e-mail chránený] jednoducho skopíruje všetky argumenty odovzdané skriptu, pričom každý z nich uzatvoríte do úvodzoviek.

    Tento scenár to naznačuje dvojhviezdy Java sú súčasťou premennej prostredia PATH. Ak tento skript na vašom počítači nefunguje, pozrite si .

    Ďalšie informácie o písaní skriptov pre interpret bash nájdete.

    .bat skript pre počítače so systémom Windows

    Na počítačoch so systémom Microsoft Windows je možné naraz odovzdať do dávkových súborov maximálne deväť argumentov. Ak existuje viac ako deväť argumentov, súbor JAR bude potrebné vykonať viackrát.

    Skript na to môže vyzerať takto nasledujúcim spôsobom:

    @echo off set jarpath="dist/AnotherGrep.jar" set pattern="%1" shift:loop if "%1" == "" goto:allprocessed set files=%1 %2 %3 %4 %5 %6 %7 %8 %9 java -jar %jarpath% %pattern% %files% for %%i in (0 1 2 3 4 5 6 7 8) do shift goto:loop:allprocessed

    Tento skript nájdete pod názvom grep.bat v priečinku, kde bol extrahovaný obsah archívu, ak ho chcete vidieť v akcii.

    Vnútri je uvedených deväť argumentov dávkový súbor ako % , kde musí mať v sebe hodnotu<0-9>. %0 je rezervované pre názov skriptu.

    Môžete vidieť, že do programu sa naraz odovzdá iba deväť argumentov (v jednej slučke). Príkaz for jednoducho posunie argumenty o deväť, aby ich pripravil na ďalší cyklus. Cyklus sa ukončí, keď príkaz if nájde prázdny argument súboru (to znamená, že neexistujú žiadne nové súbory na spracovanie).

    Viac informácií o dávkovom skriptovaní nájdete na .

    Balenie aplikácie pre Java Web Start

    Java Web Start je technológia používaná na spúšťanie aplikácií Java z webového prehliadača jediným kliknutím. Podrobnosti o balení aplikácií na nasadenie pomocou Java Web Start nájdete na Povolenie Java Web Start v NetBeans IDE. Tu uvádzame iba stručný popis krokov potrebných na nasadenie aplikácie pomocou Java Web Start.

    1. Kliknite pravým tlačidlom myši na uzol projektu v okne Projekty a vyberte Vlastnosti.
    2. Na karte Web Start v okne Project Properties začiarknite políčko Enable Web Start.
    3. Z rozbaľovacej ponuky Codebase vyberte Local Execution, pretože budeme testovať iba lokálne vykonanie.
      Ponechajte všetky ostatné predvolené nastavenia a kliknite na tlačidlo OK.
    4. Kliknite pravým tlačidlom myši na uzol projektu a vyberte možnosť Clean and Build Project.
      Tento príkaz IDE odstráni všetky predtým skompilované súbory a zostavy, prekompiluje aplikáciu a zostaví projekt s novými nastaveniami.
    5. Mimo IDE otvorte priečinok PROJECT_HOME/dist , potom v prehliadači otvorte súbor launch.html.
      Objaví sa test. HTML stránku pomocou tlačidla Spustiť.
    6. Stlačením tlačidla Spustiť otvorte aplikáciu.
      Budete môcť vidieť, že Java je načítaná a aplikácia je spustená.

      Poznámka. Niektoré prehliadače najprv presmerujú používateľov na stránku sťahovania Java.

    Určenie asociácií súborov JAR

    Na väčšine počítačov je možné spustiť spustiteľný súbor JAR jednoducho dvojitým kliknutím naň. Ak sa po dvojitom kliknutí na súbor JAR nič nestane, môže to byť spôsobené jedným z nasledujúcich dvoch dôvodov:

    • Typ súboru JAR nie je spojený s prostredím Java runtime(JRE) na tomto počítači.

      Ak je typ súboru JAR spojený s JRE, ikona predstavujúca tento súbor musí obsahovať logo Java.

    • Typ súboru JAR je namapovaný na JRE, ale voľba -jar nie je súčasťou príkazu odovzdaného do JRE pri dvojitom kliknutí na ikonu.

    Poznámka. Niekedy sa asociácie súborov JAR prepínajú nainštalovaným softvérom, ako je napríklad softvér na prácu so súbormi zip.

    Spôsob, akým môže byť typ súboru JAR spojený s nástrojom spustiť java, závisí od operačného systému.

    Uistite sa, že máte v počítači nainštalovanú jednu z verzií JRE. Mala by sa použiť verzia 1.4.2 alebo novšia. Java aplikácie nie je možné spustiť na počítačoch, ktoré nemajú nainštalovanú Java. platforma Java. (Ak je nainštalovaný Java Development Kit (JDK), nainštaluje sa s ním aj JRE. Ak je však program distribuovaný neprogramátorom, používatelia nemusia mať JRE alebo JDK.)

    • V systéme Windows XP nainštalovaná verzia Java je možné skontrolovať výberom položky „Štart“ > „Ovládací panel“ > („Pridať alebo odstrániť programy“) (mala by tam byť napríklad aktualizácia Java(TM) 6 Update 33).
    • Na Windows Vista alebo 7 nainštalovanú verziu Java môžete skontrolovať výberom položky „Štart“ > „Ovládací panel“ > („Programy a funkcie“) (tu by ste mali zadať napríklad Java (TM) 6 Update 33).

    Ak váš počítač nemá platformu Java, JRE si môžete stiahnuť zo stránky na stiahnutie Java SE.

    Ak ho už máte vo svojom počítači, ale priradenie súboru nefunguje, postupujte podľa krokov na pridanie priradenia súboru JAR v systéme Microsoft Windows:

    1. Vyberte „Štart“ > „Ovládací panel“.
    2. (Platí len pre Windows Vista). Kliknite na „Ovládací panel“ > „Programy“.

    3. V systéme Windows Vista alebo 7 kliknite na položku Predvolené programy a vyberte možnosť Priradiť typ súboru alebo protokol k programu.
    4. (V systéme Windows XP v časti Podrobnosti dialógového okna kliknite na položku Zmeniť program.)
    5. V dialógovom okne Výber programu vyberte Binárne Java Platform SE.
    6. Kliknutím na tlačidlo "OK" opustíte dialógové okno "Výber programu".
    7. Kliknutím na tlačidlo Zavrieť zatvorte dialógové okno Možnosti priečinka (v systéme Windows XP) alebo dialógové okno na priradenie typu súboru alebo protokolu ku konkrétnym programom (v systéme Windows 7).

    Poznámka. Ak sú súbory JAR priradené k Java Platform SE Binary v systéme, ale dvojité kliknutie stále nespustí súbor JAR, možno budete musieť zadať voľbu -jar v priradení súboru.

    Ak chcete zadať voľbu -jar v priradení súboru v systéme Microsoft Windows XP, postupujte takto:

    1. Vyberte „Štart“ > „Ovládací panel“.
    2. V systéme Windows XP dvakrát kliknite na „Možnosti priečinka“ a vyberte kartu „Typy súborov“.
    3. V zozname Registrované typy súborov vyberte súbor JAR.
    4. V časti Podrobnosti dialógového okna kliknite na položku Rozšírené.
    5. V dialógovom okne Upraviť vlastnosti typu súboru kliknite na položku Upraviť....
    6. V textovom poli "Aplikácia, ktorá vykonáva akciu" pridajte na koniec cesty JRE nasledujúci riadok: -jar "%1" %* Potom by malo pole obsahovať text podobný tomuto: "C:\Program Files\Java\jre1.6.0_33\ bin\javaw.exe" -jar "%1" %*
    7. Kliknutím na tlačidlo OK zatvorte dialógové okno Change Type Action.
    8. Kliknutím na tlačidlo OK zatvorte dialógové okno Upraviť vlastnosti typu súboru.
    9. Kliknutím na tlačidlo Zavrieť zatvoríte dialógové okno Možnosti priečinka.

    Poznámka. Počnúc systémom Windows Vista je možné pomocou nástroja RegEdit nakonfigurovať rozšírené priradenia súborov. Ďalšie informácie nájdete v téme Čo sa stalo s dialógovým oknom typov súborov? .

    V systémoch UNIX a Linux závisí postup na zmenu priradenia súborov od toho, ktoré prostredie pracovnej plochy (napríklad GNOME alebo KDE) sa používa. Pozrite si nastavenia pracovného priestoru alebo si prečítajte dokumentáciu pracovného priestoru.

    Nastavenie premennej prostredia PATH

    Ak váš počítač nemôže spustiť triedu Java alebo súbor JAR bez zadania umiestnenia JDK alebo JRE, možno budete musieť zmeniť hodnotu systémovej premennej prostredia PATH.

    Pri práci v systém Microsoft Windows, postup nastavenia premennej PATH závisí od verzie systému Windows, ktorú používate.

    Nasledujú kroky na nastavenie premennej PATH systém Windows XP:

    1. Vyberte „Štart“ > „Ovládací panel“ a dvakrát kliknite na „Systém“.
    2. V dialógovom okne Vlastnosti systému vyberte kartu Rozšírené.
    3. Kliknite na kartu Premenné prostredia.
    4. V zozname premenných používateľského prostredia vyberte PATH a kliknite na tlačidlo Upraviť.
    5. Pridajte umiestnenie JRE na koniec zoznamu ciest. Miesta v zozname sú oddelené bodkočiarkou (;).
      Napríklad, ak sa JRE nachádza v C:\Program Files\Java\jdk1.6.0_23, potom pridajte na koniec premennej PATH toto: C:\Program Files\Java\jdk1.6.0_23\bin
    6. Kliknutím na tlačidlo OK zatvorte dialógové okno Premenné prostredia a kliknutím na tlačidlo OK zatvorte dialógové okno Vlastnosti systému.

    Pri práci v operačný systém UNIX alebo Linux, spôsob, akým zmeníte premennú prostredia PATH, závisí od programu interpretátora príkazov, ktorý používate. Viac informácií nájdete v dokumentácii k interpreteru príkazov.

    Čo bude ďalej?

    Viac informácií o práci s NetBeans IDE nájdete na webovej stránke NetBeans.

    Viac informácií o vývoji Java aplikácií v IDE, vrátane správy classpath, je dostupných v dokumente

Ako začať java program?

Majstrova odpoveď:

Aplikácia napísaná v jazyku java je jar archív alebo sada súborov *.java a *.class, ak komponenty tohto programu nie sú skompilované do spustiteľného jar archívu. S cieľom bežať podobná aplikácia, budete musieť nainštalovať Java Runtime Environment.

Ak to chcete urobiť, musíte prejsť na stránku oficiálnej webovej stránky vývojárov java, ktorá sa nachádza na adrese http://java.sun.com/javaee/sdk/, a potom stiahnuť Najnovšia verzia java stroje. Ďalej budete musieť nainštalovať program na pevný disk osobný počítač a povedzte OS cestu k súborom, ktoré ste nainštalovali, pre ktoré musíte pridať cestu k miestu, kde je program nainštalovaný, k parametru cesty premenných prostredia (záložka sa nazýva "Rozšírené", ktorá sa nachádza vo vlastnostiach počítača okno).

Pomocou hlavnej ponuky alebo zadaním príkazu cmd v poli "Spustiť" musíte spustiť príkazový riadok. Na príkazovom riadku prejdite do adresára java programu, ktorý chcete spustiť. Po dokončení tohto postupu zadajte príkaz java -cp [názov súboru].jar [názov hlavnej programovej triedy] a stlačte kláves Enter, tým sa spustí spúšťanie súboru.

Ak chcete kompilovať java súbory, napíšte javac[názov hlavného súboru].java a potom java -cp [názov súboru]. Po prijatí informácií o parametroch na spustenie súborov java z príkazového riadku musíte zadať operátor java-help a stlačte kláves Enter.

Na obrazovke sa zobrazí úplný zoznam dostupné príkazy spolu s ich možnosťami. Všetky príkazy musia byť zadané presne, pretože zadaním chybnej kombinácie môžete poškodiť celý operačný systém vášho osobného počítača.

Ak chcete na svojom počítači spustiť minihry, ktoré sú napísané v jazyku java pre mobilné zariadenia, budete si musieť stiahnuť program MidpX. Táto aplikácia vám umožní spúšťať jar súbory bez zbytočných komplikácií. Po nainštalovaní tohto softvéru kliknite pravým tlačidlom myši na jeden zo súborov jar a vyberte položku s názvom „Vlastnosti“. V zobrazenom okne budete musieť kliknúť na tlačidlo "Zmeniť" a vybrať program vhodný na otvorenie tohto typu súboru, tj obslužný program MidpX.