Jak spustit java soubor ve windows. Rychlý start v Javě: od instalace potřebného softwaru po první program



Prohlížeč Chrome verze 42 a vyšší. Počínaje verzí Chrome 42 (vydanou v dubnu 2015) Chrome deaktivoval standardní způsob, jakým prohlížeče podporují pluginy. Více informací


Stáhněte a nainstalujte Javu

Vyzkoušejte offline instalační balíček (pouze Windows)

Offline instalační balíček se často úspěšně dokončí, i když u online instalačního balíčku došlo k problému. Soubor offline instalačního balíčku je velký a jeho stažení bude trvat déle než u online instalačního programu.
» Stáhněte si instalační program systému Windows Offline

Odinstalujte všechny nefunkční instalace Java

Před pokusem o novou instalaci odstraňte předchozí instalace Java, které nefungují.
» Odinstalujte Javu pro Windows
» Odinstalujte Javu pro Mac

Dočasně vypněte firewall nebo antivirové klienty

Aktivní firewall nebo antivirový software mohou bránit správné instalaci Javy. Po úspěšném dokončení instalace Java nezapomeňte znovu zapnout bránu firewall nebo antivirový software.

Proč se mi během instalace Java zobrazuje zpráva o poškození souboru?

Tuto zprávu nejčastěji vidí uživatelé systému Windows XP. Problém může vyřešit spuštění nástroje společnosti Microsoft a vyzkoušení offline instalačního programu. Více podrobností najdete v FAQ Installshield.

Instalaci Java můžete otestovat pomocí pokynů v části níže.

Použijte Javu

Jakmile zjistíte, že je Java správně nainstalována, vyzkoušejte následující položky, které vám pomohou spustit konkrétní aplikaci Java.

Po instalaci Javy restartujte prohlížeč, abyste povolili novou verzi

Pokud se po instalaci nejnovější verze stále zobrazuje výzva k aktualizaci Javy, zkuste restartovat prohlížeč. Zavřete všechna okna prohlížeče a poté znovu otevřete všechny webové stránky, které vyžadují Java. Ve většině případů by při spuštění nové relace prohlížeče měla být ve vašem prohlížeči aktivní nejnovější nainstalovaná verze Java.
Poznámka: Pokud budete stále vyzváni k aktualizaci, zkuste restartovat systém. Některé systémy potřebují restart k registraci nově nainstalovaného Java pluginu.

Po zobrazení výzvy prohlížečem udělte povolení ke spuštění Javy

Prohlížeče vás požádají o povolení ke spuštění zásuvného modulu Java v prohlížeči. Výzvy k povolení se liší v závislosti na prohlížeči.
» Aktivujte Java plug-in v prohlížeči

Zkontrolujte, zda je v prohlížeči povolen zásuvný modul Java

Prohlížeče mohou ve výchozím nastavení zakázat Java plug-in nebo související doplňky. Možná budete muset nakonfigurovat svůj prohlížeč, abyste povolili zásuvný modul Java.
» Povolte v prohlížeči Java plug-in

Ověřte, že je Java povolena v ovládacím panelu Java

Pokud Java není povolena v ovládacím panelu Java, nebudete moci spouštět aplikace Java v žádném prohlížeči.
» Povolte obsah Java v prohlížeči pomocí ovládacího panelu Java

Nakonfigurujte nastavení zabezpečení

Ujistěte se, že úroveň zabezpečení Java nebrání spuštění aplikace. Výchozí úroveň zabezpečení může omezit možnost spouštění aplikací, které mohou představovat riziko pro váš počítač.
» Nakonfigurujte nastavení úrovně zabezpečení v ovládacím panelu Java

Jak mohu spustit aplikace blokované nastavením zabezpečení?

Funkce Exception Site List byla zavedena počínaje vydáním Java 7 Update 51. Přidání adresy URL aplikace do seznamu výjimek umožňuje uživatelům spouštět aplikace Rich Internet Applications (RIA), které by normálně byly blokovány bezpečnostními kontrolami.
» Nakonfigurujte seznam výjimek

Proč nemohu vytisknout kupóny nebo přepravní štítky?

Některé aplikace Java nebyly upgradovány, aby splňovaly nové bezpečnostní standardy Java. V důsledku toho jsou tyto aplikace zablokovány, čímž je zakázán tisk. Kontaktujte vývojáře webu nebo aplikace a informujte je o problému.
» Nejčastější dotazy k problémům s tiskem

Vymažte mezipaměť Java (dočasné) soubory

Někdy může poškozený soubor v mezipaměti Java zabránit spuštění aplikace. Dočasné soubory, které Java stahuje, můžete bezpečně odstranit, protože je Java stáhne znovu a zajistí, že jsou aktuální.
» Vymažte mezipaměť Java

Zkontrolujte nastavení antiviru nebo brány firewall související s Javou

Uživatelé by měli zkontrolovat antivirové bezpečnostní aplikace a také nastavení brány firewall, aby zjistili, zda existují oblasti pro konfiguraci zásuvných modulů Java a zda by mohli přidat důvěryhodné stránky.

Ověřte nastavení proxy

Ujistěte se, že používáte příslušná nastavení proxy, pokud jsou nezbytná pro vaši konkrétní konfiguraci internetu.
» Nastavte proxy nastavení v ovládacím panelu Java

Odinstalujte samostatné instalace JavaFX ve Firefoxu (Windows)

Konflikt mezi Java verzemi 7u10 a vyššími a předchozími samostatnými instalacemi JavaFX může způsobit, že Firefox nerozpozná nainstalované verze Java.
» Viz Problémy s Firefoxem

Otestujte Javu

Ujistěte se, že je ve vašem prohlížeči povolena Java

Po dokončení instalace Java můžete ověřit, že Java ve vašem prohlížeči funguje. Je možné, že Java byla ve vašem prohlížeči zakázána nebo zablokována. Způsob udělení povolení ke spuštění Javy se liší v závislosti na používaném prohlížeči.

V dnešní době už nikdo nevytváří programy v konzoli. Při použití oblíbeného IDE se vývojář cítí nepohodlně na počítači někoho jiného, ​​kde není.
Poté, co jsem se rozhodl porozumět práci Ant a Maven, uvědomil jsem si, že bez nich v konzoli aplikaci sestavit nemohu.
V tomto článku jsem se snažil pokrýt všechny fáze návrhu demo aplikace, abych nehledal nápovědu ke každému příkazu na internetu.

Od jednoduchých po...

Každý program je obvykle obsažen v samostatném adresáři. Držím se pravidla vytvořit v tomto adresáři alespoň dvě složky: src a bin. První obsahuje zdrojové kódy, druhá obsahuje výsledek kompilace. Tyto složky budou mít strukturu adresářů v závislosti na balíčcích.

Jeden soubor

Můžete to udělat bez dalších složek.
Vezměme si samotný soubor HelloWorld.java. public class HelloWorld ( public static void main(String args) ( System.out.println("Hello World!"); ) )
Přejdeme do adresáře, kde je tento soubor umístěn, a provedeme příkazy.
javac HelloWorld.java V této složce se objeví soubor HelloWorld.class. To znamená, že program byl zkompilován. Chcete-li to začít
Java-classpath. Ahoj světe

Oddělování binárních souborů od zdrojů

Nyní uděláme to samé, ale s katalogy. Vytvoříme adresář HelloWorld a budeme mít v něm dvě složky src a bin.
Kompilace
javac -d bin src/HelloWorld.java Zde jsme uvedli, že binární soubory budou uloženy v samostatné složce bin a nebudou zaměňovány se zdroji.

Pojďme spustit
java -classpath ./bin HelloWorld

Používáme balíčky

Jinak najednou program přestane být jen HelloWorld. Je lepší dát balíkům jasný a jedinečný název. To vám umožní přidat tento program do jiného projektu bez konfliktu názvů. Po přečtení některých článků si možná myslíte, že název balíčku nutně potřebuje doménu. To je špatně. Domény jsou pohodlným způsobem, jak dosáhnout jedinečnosti. Pokud nemáte vlastní doménu, použijte účet na webu (například ru.habrahabr.mylogin). Bude to jedinečné. Upozorňujeme, že názvy balíčků musí být zapsány malými písmeny. A vyvarujte se používání speciálních znaků. Problémy vznikají kvůli různým platformám a systémům souborů.

Umístíme naši třídu do balíčku s názvem com.qwertovsky.helloworld. Chcete-li to provést, přidejte řádek na začátek souboru
balíček com.qwertovsky.helloworld; Vytvořme další adresáře v adresáři src tak, aby cesta k souboru vypadala takto: src/com/qwertovsky/helloworld/HelloWorld.java.
Kompilace
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java Adresář bin automaticky vytvoří adresářovou strukturu podobnou src.
HelloWorld "---bin " "---com " "---qwertovsky " "---helloworld " "---HelloWorld.class "---src "---com "---qwertovsky "-- -helloworld "---HelloWorld.java
Pojďme spustit
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld

Pokud je v programu několik souborů

Pojďme změnit program.
HelloWorld.java
balíček 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 světe!"); System.out.println( a+"+"+b+"="+vypocet.sum(a,b));
Kalkulačka.java
balíček 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íček 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ácená částka;))
Kompilace
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java src\com\qwertovsky\helloworld\HelloWorld.java:9: nelze najít symbol symbolu: class Umístění kalkulačky: class com.qwertovsky.helloworld.HelloWorld Calculator calc=new Kalkulačka(); ^ src\com\qwertovsky\helloworld\HelloWorld.java:9: nelze najít symbol symbolu: class Umístění kalkulačky: class com.qwertovsky.helloworld.HelloWorld Calculator calc=new Calculator(); ^2 chyb
K chybě došlo, protože kompilace vyžaduje soubory se zdrojovými kódy tříd, které se používají (třída Kalkulačka). Adresář se soubory musíte zadat kompilátoru pomocí přepínače -sourcepath.
Kompilace
javac -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
Pojďme spustit
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld Ahoj Word 2+3=5

Pokud výsledek překvapí

Je možné spustit debugger. K tomu slouží jdb.
Nejprve zkompilujeme pomocí přepínače -g, aby měl debugger informace.
javac -g -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
Spusťte ladicí program
jdb -classpath bin -sourcepath src com.qwertovsky.helloworld.HelloWorld Inicializace jdb ... >
Ladicí program spustí svůj interní terminál pro zadávání příkazů. Nápovědu k druhému lze zobrazit pomocí příkazu help.
Zadejte bod přerušení na řádku 9 ve třídě Kalkulačka
> zastavte se na com.qwertovsky.helloworld.Calculator:9 Odložení bodu přerušení com.qwertovsky.helloworld.Calculator:9. Nastaví se po načtení třídy.
Začněme exekucí.
> run run com.qwertovsky.helloworld.HelloWorld Set uncaught java.lang.Throwable Set odložený uncaught java.lang.Throwable > VM Started: Set odloženého bodu přerušení com.qwertovsky.helloworld.Calculator:9 Hello World! Zásah do bodu přerušení: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=9 bci=0 9 Adder adder=new Adder();
Abyste se zorientovali, můžete si zobrazit část zdrojového kódu v místě, kde se aktuálně nachází kurzor.
hlavní seznam 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();
Pojďme zjistit, co je proměnná a.
main print a a = instance int (id=340) main dump a a = ( 2, 3 ) main stop at com.qwertovsky.helloworld.operation.Adder:19 Odložení bodu přerušení com.qwertovsky.helloworld.operation.Adder:19. Nastaví se po načtení třídy.
Pokračujme v provádění.
main cont > Nastavit odložený bod přerušení com.qwertovsky.helloworld.operation.Adder:19 Přístup k bodu přerušení: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), řádek=19 bci=0 19 součet+=b ; hlavní seznam 15 ) 16 17 public void add(int b) 18 ( 19 => součet+=b; 20 ) 21 22 public int getSum() 23 ( 24 návratový součet; součet hlavního tisku = 0 hlavní tisk b b = 2
Spusťte kód na aktuálním řádku a uvidíme, že součet se nyní rovná 2.
hlavní krok > Krok dokončen: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=20 bci=10 20 ) součet hlavního tisku = 2
Přesuňme se od třídy Sčítačka nahoru ke třídě Kalkulačka, která ji nazvala.
hlavní krok nahoru > Krok dokončen: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), řádek=10 bci=36 10 for(int i:a)
Odstranění bodu přerušení
main clear com.qwertovsky.helloworld.operation.Adder:19 Odebráno: breakpoint com.qwertovsky.helloworld.operation.Adder:19 main step > Krok dokončen: "thread=main", com.qwertovsky.helloworld.Calculator.sum() , řádek=12 bci=30 12 adder.add(i);
Pomocí následujícího příkazu se můžete vyhnout přechodu do metod.
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(), line=14 bci=42 14 return adder.getSum();
Zkontrolujeme hodnotu výrazu a dokončíme provedení.
main eval adder.getSum() adder.getSum() = 5 main cont > 2+3=5 Aplikace byla ukončena

Bylo by dobré otestovat

Používáme JUnit.
balíček com.qwertovsky.helloworld; import static org.junit.Assert.*; import java.util.Arrays; import java.util.Collection; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; @RunWith(value=org.junit.runners.Parameterized.class) veřejná třída TestCalculator (int očekáváno; int arg; @Parameters public static Collection parametry() ( 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čekávané; this.arg=arg; ) @Test public void testSum() ( Calculator c=new Calculator () tvrditErovná se(očekávané,c.součet(arg));
Kompilace
mkdir test_bin javac -classpath lib/path/junit-4.8.2.jar -sourcepath ./src -d test_bin test/com/qwertovsky/helloworld/TestCalculator.java
Pojďme spustit. ";" se používá jako oddělovač pro více cest v classpath ve Windows a ":" v Linuxu. Oba oddělovače v konzoli Cygwin nefungují. Možná by mělo fungovat ";", ale je považováno za oddělovač příkazů.
java -classpath lib/path/junit-4.8.2.jar:./test_bin org.junit.runner.JUnitCore com.qwertovsky.helloworld.TestCalculator JUnit verze 4.8.2 .... Čas: 0,031 OK (4 testy)

Pojďme vytvořit knihovnu

Třída Kalkulačka se ukázala jako užitečná a lze ji použít v mnoha projektech. Přesuňme vše, co souvisí s třídou Kalkulačka, do samostatného projektu.
HelloWorld "---bin "---src "---com "---qwertovsky "---helloworld "---HelloWorld.java Kalkulačka "---bin "---src " "---com " "---qwertovsky " "---kalkulačka " "---Calculator.java " "---operace " "---Adder.java "---test "---com "---qwertovsky " ---calculator "---TestCalculator.java
Změňte také názvy balíčků ve zdrojích. Budete muset přidat řádek do HelloWorld.java
import com.qwertovsky.calculator.Calculator;
Pojďme sestavit.
cd Calculator javac -sourcepath src -d bin src/com/qwertovsky/calculator/Calculator.java
Vytvoření archivu sklenic
jar cvf calculator.jar -C bin . přidáno přidání manifestu: com/(in = 0) (out= 0)(uloženo 0%) přidání: com/qwertovsky/(in = 0) (out= 0)(uloženo 0%) přidání: com/qwertovsky/calculator/ (in = 0) (out= 0) (uloženo 0 %) přidání: com/qwertovsky/calculator/Calculator.class(in = 497) (out= 373)(deflace 24%) přidání: com/qwertovsky/calculator/operation /(in = 0) (out= 0)(uloženo 0%) přidání: com/qwertovsky/calculator/operation/Adder.class(in = 441) (out= 299)(deflated 32%)
Pomocí přepínače -C jsme spustili program v adresáři bin.

Musíme zjistit, co je uvnitř knihovny

Archiv můžete rozbalit pomocí rozbalovače zip a podívat se, jaké třídy jsou v knihovně.
Informace o jakékoli třídě lze získat pomocí javap disassembler.
javap -c -classpath calculator.jar com.qwertovsky.calculator.Calculator Zkompilováno z veřejné třídy "Calculator.java" com.qwertovsky.calculator.Calculator rozšiřuje java.lang.Object( public com.qwertovsky.calculator.Calculator(); Kód : 0: aload_0 1: invokespecial #1; //Metoda 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; //Metoda com/qwertovsky /kalkulačka/operace/Sčítačka." ":()V 7: astore_2 8: aload_1 9: astore_3 10: aload_3 11: délka pole 12: istore 4 14: iconst_0 15: istore 5 17: iload 5 19: iload 4 21: if_icmpge 42 25: aload 27: iaload 28: istore 6 30: aload_2 31: iload 6 33: invokevirtual #4 //Metoda com/qwertovsky/calculator/operation/Adder.add:(I)V 36: iinc 5, 1 39: goto 17 42; : aload_2 43: invokevirtual #5 //Metoda com/qwertovsky/calculator/operation/Adder.getSum:()I 46: ireturn )
Z výsledku je patrné, že třída obsahuje kromě prázdného konstruktoru ještě jednu metodu sum, uvnitř které se v cyklu volá metoda add třídy Adder. Po dokončení metody sum se zavolá Adder.getSum().
Bez přepínače -c program vytvoří pouze seznam proměnných a metod (pokud použijete -private, pak všechny).
javap -private -classpath calculator.jar com.qwertovsky.calculator.operation.Adder Zkompilováno z veřejné třídy "Adder.java" com.qwertovsky.calculator.operation.Adder rozšiřuje java.lang.Object( private int sum; public com.qwertovsky .calculator.operation.Adder(); public com.qwertovsky.calculator.operation.Adder(int);

Je lepší poskytnout knihovně dokumentaci

Za tímto účelem změňme třídu kalkulačky.
balíček com.qwertovsky.calculator; import com.qwertovsky.calculator.operation.Adder; /** * Kalkulačka, která umí přidat * @author Qwertovsky * */ public class Kalkulačka ( /** * Určení součtu termínů * @param pole termínů * @return the sum */ public int sum(int.. a) ( Adder adder=new Adder(); for(int i:a) ( adder.add(i); ) return adder.getSum();
Dokumentaci lze vytvořit pomocí následujícího příkazu. Pokud dojde k chybě, program zobrazí seznam možných možností.
mkdir doc javadoc -d doc -charset utf-8 -sourcepath src -author -subpackages com.qwertovsky.calculator
Výsledek bude následující

Můžete podepsat archiv jar

Pokud potřebujete digitálně podepsat vaši knihovnu, keytool a jarsigner vám přijdou na pomoc.
Generování podpisu.
keytool -genkey -keyalg rsa -keysize 2048 -alias qwertokey -keystore path/to/qwerto.keystore Zadejte heslo úložiště klíčů: Znovu zadejte nové heslo: Jaké je vaše jméno a příjmení? : Valery Qwertovsky Jak se jmenuje vaše organizační jednotka? : Qwertovsky Jak se jmenuje vaše organizace? : Qwertovsky Jak se jmenuje vaše město nebo lokalita? : Tver Jak se jmenuje váš stát nebo provincie? : Tverská obl. Jaký je dvoupísmenný kód země pro tuto jednotku? : RU Je CN=Valery Qwertovsky, OU=Qwertovsky, O=Qwertovsky, L=Tver, ST=Tverskaya obl., C=RU správně? : y Zadejte heslo klíče pro (RETURN, pokud je stejné jako heslo úložiště klíčů): Znovu zadejte nové heslo:
Generování žádosti o podpis certifikátu (CSR)
keytool -certreq -cesta k souboru/k/qwertokey.crt -alias qwertokey -keystore cesta/k/qwerto.keystore
Obsah přijatého souboru je odeslán certifikační autoritě. Obdržíme certifikát od certifikační autority. Uložíme jej do souboru (například qwertokey.cer) a naimportujeme do úložiště
keytool -import -trustcacerts -keystore path/to/qwert.keystore -alias qwertokey -file path/to/qwertokey.cer
Podepsání archivu jar
jarsigner -keystore path/to/qwerto.keystore calculator.jar qwertokey
Soubor qwertokey.cer posíláme všem, kteří chtějí zkontrolovat archiv. Kontroluje se to takto
jarsigner -verify -verbose -certs -keystore path/to/qwerto.keystore calculator.jar

Používání knihovny

Existuje program HelloWorld, který používá třídu knihovny Calculator. Chcete-li program zkompilovat a spustit, musíte zahrnout knihovnu.
Kompilace
cd HelloWorld javac -sourcepath src -d bin -classpath path/to/calculator.jar src/com/qwertovsky/helloworld/HelloWorld.java
Pojďme spustit
java -classpath bin:path/to/calculator.jar com.qwertovsky.helloworld.HelloWorld

Sestavení programu

To lze provést různými způsoby.

První způ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 .
Jsou zde jemnosti.
V souladu
hlavní třída: com.qwertovsky.helloworld.HelloWorld
na konci by neměly být žádné mezery.
Druhá jemnost je popsána v: ve stejném řádku by měla být přestávka na další řádek. To je, pokud je manifest archivován archivátorem třetí strany.
Program jar nezahrne poslední řádek z manifestu, pokud na konci není zalomení řádku.
Další bod: manifest by neměl mít mezi řádky prázdné řádky. Bude vyvolána chyba „java.io.IOException: neplatný formát manifestu“.

Při použití příkazu echo stačí dávat pozor na mezeru na konci řádku hlavní třídy.

Druhý způsob

cd HelloWorld echo class-path: lib/calculator.jar >manifest.mf mkdir lib cp cesta/to/calculator.jar lib/calculator.jar jar -cmef manifest.mf com.qwertovsky.helloworld.HelloWorld helloworld.jar -C bin .
V této metodě se vyhneme chybě s mezerou v hlavní třídě.

Třetí způsob

cd HelloWorld mkdir lib cd lib jar -xvf path/to/calculator.jar com/ created: com/ created: com/qwertovsky/ created: com/qwertovsky/calculator/ nafouknuté: com/qwertovsky/calculator/Calculator.class created: com /qwertovsky/calculator/operation/ nafouknuté: com/qwertovsky/calculator/operation/Adder.class cd .. cp -r bin/* lib/ jar -cef com.qwertovsky.helloworld.HelloWorld helloworld.jar -C lib . rm -r lib
Do spustitelného souboru jsme zahrnuli kód požadované knihovny.

Spuštění spustitelného souboru jar

Soubor calculator.jar není spustitelný. Ale helloworld.jar lze spustit.
Pokud byl archiv vytvořen pomocí prvních dvou metod, pak by vedle něj ve stejném adresáři měla být složka lib se souborem calculator.jar. Taková omezení jsou způsobena skutečností, že cesta ke třídě v manifestu určuje cestu vzhledem ke spustitelnému souboru.
cd Calculator ls ../HelloWorld/lib calculator.jar java -jar ../HelloWorld/helloworld.jar
Při použití třetí metody jsou potřebné knihovny zahrnuty do spustitelného souboru. Není potřeba udržovat potřebné knihovny poblíž. Začíná to stejně.
java -jar ../HelloWorld/helloworld.jar

Co dělat s JavaEE aplikacemi

Rovněž. Z použitého aplikačního serveru je třeba převzít pouze knihovny pro kompilaci. Pokud používám JBoss, pak pro kompilaci servletu bych musel udělat něco jako následující
javac -classpath path/to/jboss/common/lib/jboss-servlet*.jar -d ./classes src/com/qwertovsky/app/servlets/MenuSt.java
Struktura archivu JavaEE aplikace musí mít určitý formát. Například
my.ear `---META-INF | `---manifest.mf `---lib | `---mylib.jar `---my.war | `---META-INF | | `---manifest.mf | `---WEB-INF | | `---lib | | | `---myweblib.jar | | `---třídy | | | `---com | | | `---... | | `---web.xml | `---index.html | `---<остальное веб-содержимое (страницы, изображения)>`---myejb.jar
Metody pro spuštění aplikace na samotném serveru pomocí příkazového řádku se pro každý server liší.

Doufám, že se tento článek stane cheatem pro někoho, kdo bude pracovat s Javou na příkazovém řádku. Tyto dovednosti vám pomohou porozumět obsahu a významu Ant skriptů a zodpovědět složitější otázky pohovoru než „Které IDE máte nejraději?“

Software Java Web Start umožňuje stahovat a spouštět aplikace Java z internetu. Java Web Start Software:
  • Umožňuje aktivovat aplikace jedním kliknutím
  • Zajistí, že používáte nejnovější verze aplikací
  • Eliminuje potřebu složitých postupů instalace a upgradu

Jak získat software Java Web Start:

Java Web Start je součástí Java Runtime Environment (JRE) od vydání Java 5.0. To znamená, že při instalaci Java se automaticky nainstaluje Java Web Start. Při prvním načtení aplikace Java, která podporuje technologii Java Web Start, se automaticky spustí software Java Web Start. Java Web Start umístí staženou aplikaci zcela do místní mezipaměti vašeho počítače. Tímto způsobem se aplikace spustí téměř okamžitě, protože všechny potřebné prostředky jsou k dispozici na místním počítači. Při každém spuštění aplikace Java Web Start zkontroluje, zda je na webu nová verze, a pokud nějaká existuje, automaticky ji stáhne a spustí.

Spuštění aplikace pomocí Java Web Start

Pomocí prohlížeče
Pomocí ikony na ploše

Pokud aplikaci používáte často, můžete si vytvořit zástupce na ploše nebo v nabídce Start. Java Web Start vás může vyzvat k vytvoření zástupců nebo položek v nabídce Start. Pokud je vybráno "Ano", všechna následující spuštění aplikace mohou být provedena bez prohlížeče.

Použití prohlížeče Java Application Cache Viewer

Java Web Start také poskytuje prohlížeč mezipaměti aplikací, který můžete spustit z ovládacího panelu Java. Prohlížeč mezipaměti aplikací umožňuje přímo spouštět stažené aplikace.

Pokyny pro spuštění pomocí prohlížeče mezipaměti aplikací
  1. Otevřít nabídku Start > Nastavení > Kontrolní panel> dvakrát klikněte na ikonu Jáva. Na obrazovce se objeví ovládací panel Java.
  2. Přejděte na kartu Všeobecné
  3. Klepněte na tlačítko Pohled V kapitole Dočasné soubory Internetu
  4. Ze seznamu vyberte aplikaci, kterou chcete spustit, a dvakrát klikněte na její název
Pomocí příkazového řádku

Chcete-li spustit aplikaci pomocí příkazového řádku, zadejte příkaz javaws jnlp_url, Kde jnlp_url- URL souboru jnlp aplikace.

V dnešní době už nikdo nevytváří programy v konzoli. Při použití oblíbeného IDE se vývojář cítí nepohodlně na počítači někoho jiného, ​​kde není.
Poté, co jsem se rozhodl porozumět práci Ant a Maven, uvědomil jsem si, že bez nich v konzoli aplikaci sestavit nemohu.
V tomto článku jsem se snažil pokrýt všechny fáze návrhu demo aplikace, abych nehledal nápovědu ke každému příkazu na internetu.

Od jednoduchých po...

Každý program je obvykle obsažen v samostatném adresáři. Držím se pravidla vytvořit v tomto adresáři alespoň dvě složky: src a bin. První obsahuje zdrojové kódy, druhá obsahuje výsledek kompilace. Tyto složky budou mít strukturu adresářů v závislosti na balíčcích.

Jeden soubor

Můžete to udělat bez dalších složek.
Vezměme si samotný soubor HelloWorld.java. public class HelloWorld ( public static void main(String args) ( System.out.println("Hello World!"); ) )
Přejdeme do adresáře, kde je tento soubor umístěn, a provedeme příkazy.
javac HelloWorld.java V této složce se objeví soubor HelloWorld.class. To znamená, že program byl zkompilován. Chcete-li to začít
Java-classpath. Ahoj světe

Oddělování binárních souborů od zdrojů

Nyní uděláme to samé, ale s katalogy. Vytvoříme adresář HelloWorld a budeme mít v něm dvě složky src a bin.
Kompilace
javac -d bin src/HelloWorld.java Zde jsme uvedli, že binární soubory budou uloženy v samostatné složce bin a nebudou zaměňovány se zdroji.

Pojďme spustit
java -classpath ./bin HelloWorld

Používáme balíčky

Jinak najednou program přestane být jen HelloWorld. Je lepší dát balíkům jasný a jedinečný název. To vám umožní přidat tento program do jiného projektu bez konfliktu názvů. Po přečtení některých článků si možná myslíte, že název balíčku nutně potřebuje doménu. To je špatně. Domény jsou pohodlným způsobem, jak dosáhnout jedinečnosti. Pokud nemáte vlastní doménu, použijte účet na webu (například ru.habrahabr.mylogin). Bude to jedinečné. Upozorňujeme, že názvy balíčků musí být zapsány malými písmeny. A vyvarujte se používání speciálních znaků. Problémy vznikají kvůli různým platformám a systémům souborů.

Umístíme naši třídu do balíčku s názvem com.qwertovsky.helloworld. Chcete-li to provést, přidejte řádek na začátek souboru
balíček com.qwertovsky.helloworld; Vytvořme další adresáře v adresáři src tak, aby cesta k souboru vypadala takto: src/com/qwertovsky/helloworld/HelloWorld.java.
Kompilace
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java Adresář bin automaticky vytvoří adresářovou strukturu podobnou src.
HelloWorld "---bin " "---com " "---qwertovsky " "---helloworld " "---HelloWorld.class "---src "---com "---qwertovsky "-- -helloworld "---HelloWorld.java
Pojďme spustit
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld

Pokud je v programu několik souborů

Pojďme změnit program.
HelloWorld.java
balíček 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 světe!"); System.out.println( a+"+"+b+"="+vypocet.sum(a,b));
Kalkulačka.java
balíček 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íček 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ácená částka;))
Kompilace
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java src\com\qwertovsky\helloworld\HelloWorld.java:9: nelze najít symbol symbolu: class Umístění kalkulačky: class com.qwertovsky.helloworld.HelloWorld Calculator calc=new Kalkulačka(); ^ src\com\qwertovsky\helloworld\HelloWorld.java:9: nelze najít symbol symbolu: class Umístění kalkulačky: class com.qwertovsky.helloworld.HelloWorld Calculator calc=new Calculator(); ^2 chyb
K chybě došlo, protože kompilace vyžaduje soubory se zdrojovými kódy tříd, které se používají (třída Kalkulačka). Adresář se soubory musíte zadat kompilátoru pomocí přepínače -sourcepath.
Kompilace
javac -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
Pojďme spustit
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld Ahoj Word 2+3=5

Pokud výsledek překvapí

Je možné spustit debugger. K tomu slouží jdb.
Nejprve zkompilujeme pomocí přepínače -g, aby měl debugger informace.
javac -g -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
Spusťte ladicí program
jdb -classpath bin -sourcepath src com.qwertovsky.helloworld.HelloWorld Inicializace jdb ... >
Ladicí program spustí svůj interní terminál pro zadávání příkazů. Nápovědu k druhému lze zobrazit pomocí příkazu help.
Zadejte bod přerušení na řádku 9 ve třídě Kalkulačka
> zastavte se na com.qwertovsky.helloworld.Calculator:9 Odložení bodu přerušení com.qwertovsky.helloworld.Calculator:9. Nastaví se po načtení třídy.
Začněme exekucí.
> run run com.qwertovsky.helloworld.HelloWorld Set uncaught java.lang.Throwable Set odložený uncaught java.lang.Throwable > VM Started: Set odloženého bodu přerušení com.qwertovsky.helloworld.Calculator:9 Hello World! Zásah do bodu přerušení: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=9 bci=0 9 Adder adder=new Adder();
Abyste se zorientovali, můžete si zobrazit část zdrojového kódu v místě, kde se aktuálně nachází kurzor.
hlavní seznam 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();
Pojďme zjistit, co je proměnná a.
main print a a = instance int (id=340) main dump a a = ( 2, 3 ) main stop at com.qwertovsky.helloworld.operation.Adder:19 Odložení bodu přerušení com.qwertovsky.helloworld.operation.Adder:19. Nastaví se po načtení třídy.
Pokračujme v provádění.
main cont > Nastavit odložený bod přerušení com.qwertovsky.helloworld.operation.Adder:19 Přístup k bodu přerušení: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), řádek=19 bci=0 19 součet+=b ; hlavní seznam 15 ) 16 17 public void add(int b) 18 ( 19 => součet+=b; 20 ) 21 22 public int getSum() 23 ( 24 návratový součet; součet hlavního tisku = 0 hlavní tisk b b = 2
Spusťte kód na aktuálním řádku a uvidíme, že součet se nyní rovná 2.
hlavní krok > Krok dokončen: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=20 bci=10 20 ) součet hlavního tisku = 2
Přesuňme se od třídy Sčítačka nahoru ke třídě Kalkulačka, která ji nazvala.
hlavní krok nahoru > Krok dokončen: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), řádek=10 bci=36 10 for(int i:a)
Odstranění bodu přerušení
main clear com.qwertovsky.helloworld.operation.Adder:19 Odebráno: breakpoint com.qwertovsky.helloworld.operation.Adder:19 main step > Krok dokončen: "thread=main", com.qwertovsky.helloworld.Calculator.sum() , řádek=12 bci=30 12 adder.add(i);
Pomocí následujícího příkazu se můžete vyhnout přechodu do metod.
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(), line=14 bci=42 14 return adder.getSum();
Zkontrolujeme hodnotu výrazu a dokončíme provedení.
main eval adder.getSum() adder.getSum() = 5 main cont > 2+3=5 Aplikace byla ukončena

Bylo by dobré otestovat

Používáme JUnit.
balíček com.qwertovsky.helloworld; import static org.junit.Assert.*; import java.util.Arrays; import java.util.Collection; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized.Parameters; @RunWith(value=org.junit.runners.Parameterized.class) veřejná třída TestCalculator (int očekáváno; int arg; @Parameters public static Collection parametry() ( 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čekávané; this.arg=arg; ) @Test public void testSum() ( Calculator c=new Calculator () tvrditErovná se(očekávané,c.součet(arg));
Kompilace
mkdir test_bin javac -classpath lib/path/junit-4.8.2.jar -sourcepath ./src -d test_bin test/com/qwertovsky/helloworld/TestCalculator.java
Pojďme spustit. ";" se používá jako oddělovač pro více cest v classpath ve Windows a ":" v Linuxu. Oba oddělovače v konzoli Cygwin nefungují. Možná by mělo fungovat ";", ale je považováno za oddělovač příkazů.
java -classpath lib/path/junit-4.8.2.jar:./test_bin org.junit.runner.JUnitCore com.qwertovsky.helloworld.TestCalculator JUnit verze 4.8.2 .... Čas: 0,031 OK (4 testy)

Pojďme vytvořit knihovnu

Třída Kalkulačka se ukázala jako užitečná a lze ji použít v mnoha projektech. Přesuňme vše, co souvisí s třídou Kalkulačka, do samostatného projektu.
HelloWorld "---bin "---src "---com "---qwertovsky "---helloworld "---HelloWorld.java Kalkulačka "---bin "---src " "---com " "---qwertovsky " "---kalkulačka " "---Calculator.java " "---operace " "---Adder.java "---test "---com "---qwertovsky " ---calculator "---TestCalculator.java
Změňte také názvy balíčků ve zdrojích. Budete muset přidat řádek do HelloWorld.java
import com.qwertovsky.calculator.Calculator;
Pojďme sestavit.
cd Calculator javac -sourcepath src -d bin src/com/qwertovsky/calculator/Calculator.java
Vytvoření archivu sklenic
jar cvf calculator.jar -C bin . přidáno přidání manifestu: com/(in = 0) (out= 0)(uloženo 0%) přidání: com/qwertovsky/(in = 0) (out= 0)(uloženo 0%) přidání: com/qwertovsky/calculator/ (in = 0) (out= 0) (uloženo 0 %) přidání: com/qwertovsky/calculator/Calculator.class(in = 497) (out= 373)(deflace 24%) přidání: com/qwertovsky/calculator/operation /(in = 0) (out= 0)(uloženo 0%) přidání: com/qwertovsky/calculator/operation/Adder.class(in = 441) (out= 299)(deflated 32%)
Pomocí přepínače -C jsme spustili program v adresáři bin.

Musíme zjistit, co je uvnitř knihovny

Archiv můžete rozbalit pomocí rozbalovače zip a podívat se, jaké třídy jsou v knihovně.
Informace o jakékoli třídě lze získat pomocí javap disassembler.
javap -c -classpath calculator.jar com.qwertovsky.calculator.Calculator Zkompilováno z veřejné třídy "Calculator.java" com.qwertovsky.calculator.Calculator rozšiřuje java.lang.Object( public com.qwertovsky.calculator.Calculator(); Kód : 0: aload_0 1: invokespecial #1; //Metoda 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; //Metoda com/qwertovsky /kalkulačka/operace/Sčítačka." ":()V 7: astore_2 8: aload_1 9: astore_3 10: aload_3 11: délka pole 12: istore 4 14: iconst_0 15: istore 5 17: iload 5 19: iload 4 21: if_icmpge 42 25: aload 27: iaload 28: istore 6 30: aload_2 31: iload 6 33: invokevirtual #4 //Metoda com/qwertovsky/calculator/operation/Adder.add:(I)V 36: iinc 5, 1 39: goto 17 42; : aload_2 43: invokevirtual #5 //Metoda com/qwertovsky/calculator/operation/Adder.getSum:()I 46: ireturn )
Z výsledku je patrné, že třída obsahuje kromě prázdného konstruktoru ještě jednu metodu sum, uvnitř které se v cyklu volá metoda add třídy Adder. Po dokončení metody sum se zavolá Adder.getSum().
Bez přepínače -c program vytvoří pouze seznam proměnných a metod (pokud použijete -private, pak všechny).
javap -private -classpath calculator.jar com.qwertovsky.calculator.operation.Adder Zkompilováno z veřejné třídy "Adder.java" com.qwertovsky.calculator.operation.Adder rozšiřuje java.lang.Object( private int sum; public com.qwertovsky .calculator.operation.Adder(); public com.qwertovsky.calculator.operation.Adder(int);

Je lepší poskytnout knihovně dokumentaci

Za tímto účelem změňme třídu kalkulačky.
balíček com.qwertovsky.calculator; import com.qwertovsky.calculator.operation.Adder; /** * Kalkulačka, která umí přidat * @author Qwertovsky * */ public class Kalkulačka ( /** * Určení součtu termínů * @param pole termínů * @return the sum */ public int sum(int.. a) ( Adder adder=new Adder(); for(int i:a) ( adder.add(i); ) return adder.getSum();
Dokumentaci lze vytvořit pomocí následujícího příkazu. Pokud dojde k chybě, program zobrazí seznam možných možností.
mkdir doc javadoc -d doc -charset utf-8 -sourcepath src -author -subpackages com.qwertovsky.calculator
Výsledek bude následující

Můžete podepsat archiv jar

Pokud potřebujete digitálně podepsat vaši knihovnu, keytool a jarsigner vám přijdou na pomoc.
Generování podpisu.
keytool -genkey -keyalg rsa -keysize 2048 -alias qwertokey -keystore path/to/qwerto.keystore Zadejte heslo úložiště klíčů: Znovu zadejte nové heslo: Jaké je vaše jméno a příjmení? : Valery Qwertovsky Jak se jmenuje vaše organizační jednotka? : Qwertovsky Jak se jmenuje vaše organizace? : Qwertovsky Jak se jmenuje vaše město nebo lokalita? : Tver Jak se jmenuje váš stát nebo provincie? : Tverská obl. Jaký je dvoupísmenný kód země pro tuto jednotku? : RU Je CN=Valery Qwertovsky, OU=Qwertovsky, O=Qwertovsky, L=Tver, ST=Tverskaya obl., C=RU správně? : y Zadejte heslo klíče pro (RETURN, pokud je stejné jako heslo úložiště klíčů): Znovu zadejte nové heslo:
Generování žádosti o podpis certifikátu (CSR)
keytool -certreq -cesta k souboru/k/qwertokey.crt -alias qwertokey -keystore cesta/k/qwerto.keystore
Obsah přijatého souboru je odeslán certifikační autoritě. Obdržíme certifikát od certifikační autority. Uložíme jej do souboru (například qwertokey.cer) a naimportujeme do úložiště
keytool -import -trustcacerts -keystore path/to/qwert.keystore -alias qwertokey -file path/to/qwertokey.cer
Podepsání archivu jar
jarsigner -keystore path/to/qwerto.keystore calculator.jar qwertokey
Soubor qwertokey.cer posíláme všem, kteří chtějí zkontrolovat archiv. Kontroluje se to takto
jarsigner -verify -verbose -certs -keystore path/to/qwerto.keystore calculator.jar

Používání knihovny

Existuje program HelloWorld, který používá třídu knihovny Calculator. Chcete-li program zkompilovat a spustit, musíte zahrnout knihovnu.
Kompilace
cd HelloWorld javac -sourcepath src -d bin -classpath path/to/calculator.jar src/com/qwertovsky/helloworld/HelloWorld.java
Pojďme spustit
java -classpath bin:path/to/calculator.jar com.qwertovsky.helloworld.HelloWorld

Sestavení programu

To lze provést různými způsoby.

První způ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 .
Jsou zde jemnosti.
V souladu
hlavní třída: com.qwertovsky.helloworld.HelloWorld
na konci by neměly být žádné mezery.
Druhá jemnost je popsána v: ve stejném řádku by měla být přestávka na další řádek. To je, pokud je manifest archivován archivátorem třetí strany.
Program jar nezahrne poslední řádek z manifestu, pokud na konci není zalomení řádku.
Další bod: manifest by neměl mít mezi řádky prázdné řádky. Bude vyvolána chyba „java.io.IOException: neplatný formát manifestu“.

Při použití příkazu echo stačí dávat pozor na mezeru na konci řádku hlavní třídy.

Druhý způsob

cd HelloWorld echo class-path: lib/calculator.jar >manifest.mf mkdir lib cp cesta/to/calculator.jar lib/calculator.jar jar -cmef manifest.mf com.qwertovsky.helloworld.HelloWorld helloworld.jar -C bin .
V této metodě se vyhneme chybě s mezerou v hlavní třídě.

Třetí způsob

cd HelloWorld mkdir lib cd lib jar -xvf path/to/calculator.jar com/ created: com/ created: com/qwertovsky/ created: com/qwertovsky/calculator/ nafouknuté: com/qwertovsky/calculator/Calculator.class created: com /qwertovsky/calculator/operation/ nafouknuté: com/qwertovsky/calculator/operation/Adder.class cd .. cp -r bin/* lib/ jar -cef com.qwertovsky.helloworld.HelloWorld helloworld.jar -C lib . rm -r lib
Do spustitelného souboru jsme zahrnuli kód požadované knihovny.

Spuštění spustitelného souboru jar

Soubor calculator.jar není spustitelný. Ale helloworld.jar lze spustit.
Pokud byl archiv vytvořen pomocí prvních dvou metod, pak by vedle něj ve stejném adresáři měla být složka lib se souborem calculator.jar. Taková omezení jsou způsobena skutečností, že cesta ke třídě v manifestu určuje cestu vzhledem ke spustitelnému souboru.
cd Calculator ls ../HelloWorld/lib calculator.jar java -jar ../HelloWorld/helloworld.jar
Při použití třetí metody jsou potřebné knihovny zahrnuty do spustitelného souboru. Není potřeba udržovat potřebné knihovny poblíž. Začíná to stejně.
java -jar ../HelloWorld/helloworld.jar

Co dělat s JavaEE aplikacemi

Rovněž. Z použitého aplikačního serveru je třeba převzít pouze knihovny pro kompilaci. Pokud používám JBoss, pak pro kompilaci servletu bych musel udělat něco jako následující
javac -classpath path/to/jboss/common/lib/jboss-servlet*.jar -d ./classes src/com/qwertovsky/app/servlets/MenuSt.java
Struktura archivu JavaEE aplikace musí mít určitý formát. Například
my.ear `---META-INF | `---manifest.mf `---lib | `---mylib.jar `---my.war | `---META-INF | | `---manifest.mf | `---WEB-INF | | `---lib | | | `---myweblib.jar | | `---třídy | | | `---com | | | `---... | | `---web.xml | `---index.html | `---<остальное веб-содержимое (страницы, изображения)>`---myejb.jar
Metody pro spuštění aplikace na samotném serveru pomocí příkazového řádku se pro každý server liší.

Doufám, že se tento článek stane cheatem pro někoho, kdo bude pracovat s Javou na příkazovém řádku. Tyto dovednosti vám pomohou porozumět obsahu a významu Ant skriptů a zodpovědět složitější otázky pohovoru než „Které IDE máte nejraději?“

Jedna z oblíbených otázek začínajících programátorů v Javě (a nejen v Javě)
Začněme s kompilací a spuštěním.
Zaprvé, Java aplikace se neobejdou bez virtuálního stroje, pro jeho získání je, zhruba řečeno, potřeba nainstalovat JDK (Java Development Kit), stáhnout si jej můžete přímo z webu Oracle.
Podívejme se na proměnné prostředí, které máme.
To se provádí takto: klikněte pravým tlačítkem na “Tento počítač” -> “Vlastnosti” -> “Upřesnit” -> “Proměnné prostředí”.
Proměnná PATH musí obsahovat cestu ke spustitelným souborům JDK, kde java.exe(virtuální stroj, který spouští bajtový kód zkompilovaný obslužným programem javac.exe) a javac.exe(kompilátor, překládá soubory s příponou java do bajtového kódu, soubory s příponou třídy)
Začněme tedy uspořádáním složek.
Například pro konzolovou hru o babičce vytvoříme složku Game.
Dále v něm musíme vytvořit složku třídy A src.
V src budeme ukládat soubory Jáva.
V třídy sestaven třída soubory.

Použijme příklad z článku.
Ve složce src vytvořit složku babgame.
Každý balíček balík- toto je složka a babgame Máme balíček, nezapomeňte.
Doporučuje se pojmenovávat balíčky podle doménových jmen, protože Název balíčku je jedinečný. Například pokud máme balíček su.clan.pr0gram, pak budete muset nejprve vytvořit tři podsložky su, pak klan a na konci pr0gram, a již obsahuje soubory našeho programu.
Vytvoříme soubor s příponou java v babgame a napíšeme tam kód programu, uložíme jej, ukončíme babgame, poté ukončíme src a dostaneme se do hry.
Psaní skriptu pro konzoli - kompilovat.cmd

Javac -classpath ./classes -d ./classes -s ./src src/babgame/Main.java -encoding Cp1251
pauza


pauza lze odstranit, jedná se o zpoždění v případě, že kompilátor generuje chyby.
javac- jak jste již pravděpodobně pochopili, jedná se o kompilátor, přijímá několik desítek parametrů, z nichž několik jsme použili.
-classpath ./classes- uveďte, ve které složce máme třídy
-d ./třídy- uveďte, ve které složce budou soubory třídy generovány
-s ./src- uveďte složku se zdroji (v zásadě nemusíte psát)
src/babgame/Main.java- samotný soubor je ve složce src (pro mě se jmenuje Main.java)
Mimochodem, nezapomeňte, jméno třídy popsané v souboru s příponou java se musí shodovat s názvem souboru (bez přípony) (v některých systémech záleží i na zápisu, dolní nebo horní)
-kódování Cp1251- udává, v jakém kódování má být soubor se zdrojovým kódem programu načten. (předpokládá se, že zdroj je napsán pro Windows)

Kompilovaný soubor bude umístěn do složky třídy.
Píšeme následující skript:
spustit.cmd

Java -Dfile.encoding=Cp866 -classpath ./classes Main


Jáva- spustí náš soubor třídy.
-Dfile.encoding=Cp866- označuje, v jakém kódování má být výstup vytvořen.
Protože naše konzole standardně vysílá na Cp866, uděláme to.
-classpath ./classes- označte složku, kam ukládáme třídy.
Hlavní- název třídy, kde máme metodu main(), bez které, jak víme, program nespustí.

Tyto dva skripty vytvoříme v adresáři Hra, dovolte mi znovu připomenout.
No a to je vše, můžete hrát až do rána!




Horní