Jar fájl futtatása Windows 10 rendszeren. A Java használata a parancssorban

A gyermekek számára lázcsillapítót gyermekorvos írja fel. De vannak vészhelyzetek a láz miatt, amikor a gyermeknek azonnal gyógyszert kell adni. Ezután a szülők vállalják a felelősséget és lázcsillapító szereket használnak. Mit szabad adni a csecsemőknek? Hogyan lehet csökkenteni a hőmérsékletet idősebb gyermekeknél? Milyen gyógyszerek a legbiztonságosabbak?

Sok kezdő programozó szembesül a következő kérdéssel: "Az alkalmazásomat az IDE-ben hoztam létre, most hogyan tudom működésre bírni az IDE-n kívüli parancssorból?". Egy másik kérdés, amely felmerülhet: "Hogyan terjeszthetem ezt az alkalmazást más felhasználóknak anélkül, hogy egyszerre adnám át nekik a teljes IDE-t?".

Ezekre a kérdésekre a válaszok viszonylag egyszerűek, de nem mindig egyértelműek. NÁL NÉL ez a dokumentum válaszol rájuk azáltal, hogy bemutatja az IDE használatának alapjait az alkalmazások terjesztésre és telepítésre való előkészítésére. Ezenkívül ez a dokumentum olyan információkat tartalmaz, amelyekre szükség lehet a programozói rendszer beállításához (vagy amelyeket közölni kell az alkalmazás felhasználóival). Számos különböző megközelítést mutatunk be egy alkalmazás üzembe helyezésére, lehetővé téve a felhasználók számára, hogy az alábbi módon érhessék el:

  • Kattintson duplán az alkalmazás Java archív (JAR) fájljára.
  • Alkalmazás hívása parancssorból.
  • Alkalmazás hívása parancsfájlból.
  • Java Web Start használata.

Ehhez az oktatóanyaghoz az alábbi táblázatban felsorolt ​​szoftverekre és anyagokra van szükség.

Futtatható JAR fájl létrehozása

Az oktatóanyag ezen része bemutatja, hogyan hozhat létre újraterjeszthető alkalmazást az IDE-ben, majd futtassa az alkalmazást az IDE-n kívül. Ezt az alkalmazást egy futtatható JAR fájlba csomagoljuk.

A JAR fájl olyan archív fájl, amely fájlokat és mappákat tartalmazhat. A JAR-fájlok hasonlóak a ZIP-fájlokhoz, de a JAR-fájlok további attribútumokkal is rendelkezhetnek, amelyek hasznosak Java-alkalmazások terjesztésénél. Ezek az attribútumok magukban foglalják a JAR-fájlok digitális aláírását, az opcionális tömörítést, a platformok közötti kompatibilitást és így tovább.

Ebben a gyakorlatban létrehozunk egy IDE projektet, majd két előre megírt Java forrásfájlt helyezünk el a projektben. Ezután összeállítjuk az osztályokat, és létrehozunk egy végrehajtható JAR fájlt. Ezt követően meglátjuk, hogyan lehet JAR fájlokat futtatni az IDE-n kívül.

Az ebben az oktatóanyagban használt osztályok a GNU grep segédprogram funkcióit valósítják meg, amellyel szöveges vagy reguláris kifejezésmintákat lehet keresni szövegfájlokban. Ez a projekt az alkalmazás parancssori verzióját és egy olyan verziót is tartalmaz, amely azt használja GUI, amely bemutatja az alkalmazás futtatásának különböző módjait.

Projekt készítése meglévő forráskódfájlok felhasználásával

  1. Az alkalmazás terjesztése más felhasználók számára

    Most, hogy meggyőződött arról, hogy az alkalmazás az IDE-n kívül is működik, folytathatja a terjesztését.

    Jegyzet. Ha az alkalmazása a JDK-ban szereplőktől eltérő további könyvtáraktól függ, akkor ezeket fel kell vennie a disztribúciójába (ez erre a példára nem vonatkozik). A könyvtárak relatív elérési útjai hozzáadódnak a JAR jegyzékfájl osztályútvonal-bejegyzéséhez, amikor az alkalmazást az IDE-ben fejlesztik. Ha ezek a további könyvtárak az indításkor nem találhatók a megadott osztályútvonalon (azaz relatív útvonalon), az alkalmazás nem indul el.
    Teremt ZIP archívum amely tartalmazza a JAR fájlt és a könyvtárat, majd töltse fel ezt ZIP fájl felhasználókat. Utasítsa a felhasználókat, hogy csomagolják ki ezt a ZIP-archívumot, hogy a JAR-fájl és a könyvtár JAR-fájljai ugyanabban a mappában legyenek. Futtassa az alkalmazás jar fájlját.

    Java alkalmazás indítása

    Ennek a gyakorlatnak az a célja, hogy bemutassa az alkalmazások parancssorból történő futtatásának néhány módját.

    Ez a gyakorlat bemutatja, hogyan indíthat el egy Java alkalmazást a következő két módon:

    • Java parancs futtatása a parancssorból.
    • Szkript használata egy osztály meghívására JAR fájlban.

    Alkalmazások indítása a parancssorból

    Az alkalmazás elindítható a parancssorból a java paranccsal. Ha végrehajtható JAR fájlt szeretne végrehajtani, használja a parancs -jar kapcsolóját.

    Például az AnotherGrep alkalmazás futtatásához tegye a következőket:

    1. Nyisson meg egy terminál ablakot. Microsoft Windows rendszereken ezt úgy kell megtenni, hogy a "Start" gombra kattint, és a "Futtatás..." lehetőséget választja, az "Open:" mezőbe írja be a cmd parancsot, majd kattintson az "OK" gombra.
    2. Menjen a könyvtárba PROJECT_HOME/dist (a cd paranccsal).
    3. Írja be a következő sort a fő alkalmazásosztály futtatásához: java -jar AnotherGrep.jar

    Ha követi ezeket az utasításokat, és az alkalmazás nem indul el, valószínűleg tegye a következők egyikét:

    Alkalmazások indítása szkriptből

    Ha a terjeszteni kívánt alkalmazás egy konzolalkalmazás, kényelmesebbnek találhatja azt, ha parancsfájlból futtatja, különösen, ha az alkalmazás futtatásához hosszú és összetett argumentumok szükségesek. Ebben a részben a Grep konzolos verzióját használjuk, amelyben argumentumokat (keresési mintát és fájlok listáját) kell átadnunk a szkriptünkben meghívott JAR fájlnak. A parancssori gépelés mennyiségének csökkentése érdekében egy egyszerű szkriptet használunk, amely alkalmas egy tesztalkalmazás futtatására.

    Az első lépés az alkalmazás fő osztályának módosítása az osztály konzolos verziójára, és a JAR fájl újraépítése:

    1. Az IDE Projektek ablakában kattintson jobb gombbal a projektcsomópontra (AnotherGrep), és válassza a Tulajdonságok menüpontot.
    2. Válassza ki a Run csomópontot, és módosítsa a Main Class tulajdonságot othergrep.Grep értékre (másgrep.xGrep-ről). Kattintson az OK gombra a Projekt tulajdonságai ablak bezárásához.
    3. Kattintson ismét a jobb gombbal a projekt csomópontjára, és válassza a Projekt tisztítása és felépítése lehetőséget.

    Amikor ezek a lépések befejeződnek, a JAR-fájl újraépül, és a Main-Class attribútum a JAR-fájl jegyzékében az othergrep.Grep-re fog mutatni.

    bash script – UNIX és Linux rendszerű számítógépekhez

    Abban a mappában, ahová a fájl tartalmát kicsomagolta, talál egy grep.sh nevű bash szkriptet. Vessünk egy pillantást rá:

    #!/bin/bash java -jar dist/AnotherGrep.jar [e-mail védett]

    Az első sor megadja, hogy melyik parancsértelmezőt kell használni a szkript értelmezéséhez. A második végrehajtja az IDE által a mappában létrehozott JAR fájlt PROJECT_HOME/dist . [e-mail védett] egyszerűen lemásolja a szkriptnek átadott összes argumentumot, mindegyiket idézőjelbe helyezve.

    Ez a szkript feltételezi, hogy a Java binárisok a PATH környezeti változó részét képezik. Ha ez a szkript nem működik az Ön számítógépén, lásd:.

    A bash interpreter szkriptjével kapcsolatos további információkért lásd: .

    .bat szkript Windows számítógépekhez

    Microsoft Windows rendszerű számítógépeken egyszerre legfeljebb kilenc argumentum adható át a kötegfájloknak. Ha kilencnél több argumentum van, akkor a JAR-fájlt többször kell végrehajtani.

    Ennek a szkriptje így nézhet ki:

    @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

    Ez a szkript grep.bat néven található abban a mappában, ahova az archívum tartalma ki lett bontva, ha működés közben szeretné látni.

    A kilenc argumentum a kötegfájlban % , ahol belül kell lennie értéknek<0-9>. %0 van fenntartva a szkriptnév számára.

    Látható, hogy egyszerre csak kilenc argumentum kerül átadásra a programnak (egy ciklusban). A for utasítás egyszerűen eltolja az argumentumokat kilenccel, hogy felkészítse őket a következő ciklusra. A ciklus akkor ér véget, ha az if utasítás üres fájl argumentumot talál (ez azt jelzi, hogy nincsenek új feldolgozandó fájlok).

    A kötegelt szkriptekkel kapcsolatos további információk a címen találhatók.

    Alkalmazás csomagolása a Java Web Start számára

    A Java Web Start egy olyan technológia, amellyel Java-alkalmazásokat indítanak el webböngészőből egyetlen kattintással. Lásd: A Java Web Start engedélyezése a NetBeans IDE-ben a Java Web Start segítségével telepíthető alkalmazások csomagolásának részleteiért. Itt csak rövid leírást adunk azokról a lépésekről, amelyek ahhoz szükségesek, hogy egy alkalmazást telepíthetővé tegyen a Java Web Start segítségével.

    1. Kattintson a jobb gombbal a projektcsomópontra a Projektek ablakban, és válassza a Tulajdonságok menüpontot.
    2. A Projekt tulajdonságai ablak Web Start lapján jelölje be a Web Start engedélyezése jelölőnégyzetet.
    3. Válassza a Helyi végrehajtás lehetőséget a Codebase legördülő menüből, mivel csak a helyi végrehajtást fogjuk tesztelni.
      Tartsa meg az összes többi alapértelmezett beállítást, majd kattintson az OK gombra.
    4. Kattintson a jobb gombbal a projektcsomópontra, és válassza a Clean and Build Project lehetőséget.
      Ez az IDE parancs eltávolítja az összes korábban lefordított fájlt és buildet, újrafordítja az alkalmazást, és összeállítja a projektet az új beállításokkal.
    5. Az IDE-n kívül nyissa meg a mappát PROJECT_HOME/dist , majd nyissa meg a launch.html fájlt a böngészőben.
      Megjelenik egy teszt. HTML oldal az Indítás gombbal.
    6. Nyomja meg az Indítás gombot az alkalmazás megnyitásához.
      Látni fogja, hogy a Java betöltődik, és az alkalmazás fut.

      Jegyzet. Egyes böngészők először a Java letöltési oldalra irányítják át a felhasználókat.

    JAR-fájltársítások megadása

    A legtöbb számítógépen a végrehajtható JAR fájl egyszerűen végrehajtható dupla kattintással. Ha semmi sem történik, amikor duplán kattint egy JAR fájlra, annak az alábbi két ok egyike lehet:

    • A JAR fájltípus nincs társítva a Java Runtime Environment (JRE) környezethez ezen a számítógépen.

      Ha a JAR fájltípus JRE-hez van társítva, akkor az adott fájlt képviselő ikonnak tartalmaznia kell a Java logót.

    • A JAR fájltípus hozzá van rendelve a JRE-hez, de a -jar paraméter nem része a JRE-nek átadott parancsnak, amikor az ikonra duplán kattintanak.

    Jegyzet. Néha a JAR fájltársításokat a telepített szoftverek váltják át, például szoftver zip fájlok feldolgozásához.

    Az operációs rendszertől függ, hogy egy JAR-fájltípust hogyan lehet Javaindítóhoz kötni.

    Győződjön meg arról, hogy a JRE valamelyik verziója telepítve van a számítógépére. Az 1.4.2-es vagy újabb verziót kell használni. A Java-alkalmazások nem futtathatók olyan számítógépeken, amelyeken nincs telepítve a Java platform. (Ha telepíti a Java Development Kit-et (JDK), akkor a JRE is telepítve lesz vele. Ha azonban a programot nem programozóknak terjesztik, előfordulhat, hogy a felhasználók nem rendelkeznek JRE-vel vagy JDK-val.)

    • Windows XP telepítve Java verzió ellenőrizhető a "Start" > "Vezérlőpult" > ("Programok hozzáadása vagy törlése") kiválasztásával (legyen például Java (TM) 6 Update 33).
    • A Windows Vista vagy 7 a Java telepített verzióját a "Start" > "Vezérlőpult" > ("Programok és szolgáltatások") kiválasztásával ellenőrizheti (meg kell adni például a Java (TM) 6 33. frissítést).

    Ha számítógépe nem rendelkezik Java platformmal, a JRE letölthető a Java SE letöltési oldaláról.

    Ha már megvan a számítógépén, de a fájltársítás nem működik, kövesse az alábbi lépéseket a JAR fájltársítás hozzáadásához a Microsoft Windows rendszerben:

    1. Válassza a "Start" > "Vezérlőpult" lehetőséget.
    2. (Csak Windows Vista rendszerre vonatkozik). Kattintson a "Vezérlőpult" > "Programok" elemre.

    3. Windows Vista vagy 7 esetén kattintson az Alapértelmezett programok elemre, és válassza a Fájltípus vagy protokoll társítása programhoz lehetőséget.
    4. (Windows XP rendszerben a párbeszédpanel Részletek részében kattintson a Program módosítása elemre.)
    5. A Program kiválasztása párbeszédpanelen válassza a Java Platform SE Binary lehetőséget.
    6. Kattintson az "OK" gombra a "Program kiválasztása" párbeszédpanelből való kilépéshez.
    7. Kattintson a Bezárás gombra a Mappabeállítások párbeszédpanel (Windows XP rendszerben) vagy a fájltípus vagy protokoll meghatározott programokhoz való társítására szolgáló párbeszédpanel bezárásához (Windows 7 rendszerben).

    Jegyzet. Ha a rendszeren a JAR-fájlok a Java Platform SE Binaryhoz vannak társítva, de a dupla kattintás még mindig nem indítja el a JAR-fájlt, előfordulhat, hogy meg kell adnia a -jar beállítást a fájltársításban.

    A Microsoft Windows XP fájltársításában a -jar beállítás megadásához kövesse az alábbi lépéseket:

    1. Válassza a "Start" > "Vezérlőpult" lehetőséget.
    2. Windows XP rendszerben kattintson duplán a "Mappabeállítások" elemre, és válassza a "Fájltípusok" fület.
    3. A Regisztrált fájltípusok listában válassza ki a JAR fájlt.
    4. A párbeszédpanel Részletek részében kattintson a Speciális gombra.
    5. A Fájltípus tulajdonságainak szerkesztése párbeszédpanelen kattintson a Szerkesztés... gombra.
    6. A "Műveletet végrehajtó alkalmazás" szövegmezőben adja hozzá a következő sort a JRE elérési út végéhez: -jar "%1" %* Ezt követően a mezőnek a következőhöz hasonló szöveget kell tartalmaznia: "C:\Program Fájlok\Java\jre1.6.0_33\ bin\javaw.exe" -jar "%1" %*
    7. Kattintson az OK gombra a Típus módosítása művelet párbeszédpanelből való kilépéshez.
    8. Kattintson az OK gombra a Fájltípus tulajdonságainak szerkesztése párbeszédpanelből való kilépéshez.
    9. A Mappabeállítások párbeszédpanelből való kilépéshez kattintson a Bezárás gombra.

    Jegyzet. A Windows Vista rendszertől kezdve a kiterjesztett fájltársítások a RegEdit segítségével konfigurálhatók. További információkért lásd: Mi történt a fájltípusok párbeszédpanelen? .

    UNIX és Linux rendszerek esetén a fájltársítások módosításának eljárása attól függ, hogy melyik asztali környezetet (például GNOME vagy KDE) használják. Vessen egy pillantást a munkaterület beállításaira, vagy olvassa el a munkaterület dokumentációját.

    A PATH környezeti változó beállítása

    Ha a számítógépe nem tud Java osztályt vagy JAR fájlt futtatni a JDK vagy JRE helyének megadása nélkül, előfordulhat, hogy módosítania kell a rendszer PATH környezeti változó értékét.

    Ha Microsoft Windows rendszeren fut, a PATH változó beállításának eljárása a használt Windows verziótól függ.

    Az alábbiakban bemutatjuk a PATH változó beállításának lépéseit Windows rendszer XP:

    1. Válassza a "Start" > "Vezérlőpult" lehetőséget, és kattintson duplán a "Rendszer" elemre.
    2. A Rendszer tulajdonságai párbeszédpanelen válassza a Speciális lapot.
    3. Kattintson a Környezeti változók fülre.
    4. A felhasználói környezeti változók listájában válassza ki a PATH elemet, és kattintson a Szerkesztés gombra.
    5. Adja hozzá a JRE helyét az útvonallista végéhez. A listában szereplő helyek pontosvesszővel (;) vannak elválasztva.
      Például, ha a JRE a C:\Program Files\Java\jdk1.6.0_23 mappában található, akkor adja hozzá a következőt a PATH változó végéhez: C:\Program Files\Java\jdk1.6.0_23\bin
    6. Kattintson az OK gombra a Környezeti változók párbeszédpanelből való kilépéshez, majd kattintson az OK gombra a Rendszer tulajdonságai párbeszédpanelből való kilépéshez.

    Amikor bent dolgozik operációs rendszer UNIX vagy Linux esetén a PATH környezeti változó módosításának módja a használt parancsértelmező programtól függ. További információért tekintse meg a parancsértelmező dokumentációját.

    Mi a következő lépés?

    A NetBeans IDE használatával kapcsolatos további információkért látogasson el a NetBeans webhelyére.

    További információ a Java alkalmazások fejlesztéséről az IDE-ben, beleértve az osztályút-kezelést is, a dokumentumban található

Most már senki sem hoz létre programokat a konzolban. Kedvenc IDE-jét használva a fejlesztő kényelmetlenül érzi magát valaki más számítógépe előtt, ahol nem.
Úgy döntöttem, hogy megértem az Ant és a Maven munkáját, és úgy találtam, hogy képtelen vagyok megépíteni az alkalmazást anélkül, hogy a konzolon ne legyenek.
Ebben a cikkben megpróbáltam beilleszteni a bemutatóalkalmazások tervezésének minden szakaszát, hogy ne keressek segítséget minden egyes parancshoz az interneten.

Az egyszerűtől a...

Minden program általában külön könyvtárban található. A szabályom az, hogy ebben a könyvtárban legalább két mappát kell létrehozni: src és bin. Az első a forráskódokat, a második a fordítási eredményt tartalmazza. Ezeknek a mappáknak a csomagoktól függően könyvtárszerkezetük lesz.

Egy fájl

Ezt extra mappák nélkül is megteheti.
Vegyük a fájlt.
01 02 03 04 05 06 07 08 09 public class HelloWorld ( public static void main(String args) ( System.out.println("Hello World!"); Számológép calc=new Calculator(); System.out.println("2+2="+calc.sum (2,2)); ) )
Lépjen abba a könyvtárba, ahol ez a fájl található, és hajtsa végre a parancsokat.
javac HelloWorld.java Ebben a mappában fog megjelenni a HelloWorld.class fájl. Tehát a program össze van állítva. Hogy elindítsa
java -classpath . Helló Világ

A bináris fájlok elkülönítése a forrásoktól

Most ugyanezt fogjuk tenni, csak könyvtárakkal. Hozzunk létre egy HelloWorld könyvtárat két src és bin mappával.
Összeállítás
javac -d bin src/HelloWorld.java Itt jeleztük, hogy a bináris fájlokat egy külön bin mappába mentjük, és nem tévesztjük össze a forrásokkal.

Elindítjuk
java -classpath ./bin HelloWorld

Csomagokat használunk

És akkor hirtelen a program megszűnik csak HelloWorld lenni. A csomagoknak érdemes értelmes és egyedi nevet adni. Ez hozzáadja ez a program egy másik projektre, ahol nincs elnevezési ütközés. Néhány cikk elolvasása után azt gondolhatja, hogy a csomagnévhez szükségszerűen tartományra van szükség. Ez nem igaz. A domainek kényelmes módjai az egyediség elérésének. Ha nem rendelkezik saját domainnel, használjon fiókot a webhelyen (például ru.habrahabr.mylogin). Egyedülálló lesz. Felhívjuk figyelmét, hogy a csomagok nevét kisbetűvel kell írni. És kerülje a speciális karakterek használatát. A problémák a különböző platformok és fájlrendszerek miatt merülnek fel.

Helyezzük el osztályunkat a com.qwertovsky.helloworld nevű csomagba. Ehhez adjon hozzá egy sort a fájl elejéhez
csomag com.qwertovsky.helloworld; Hozzunk létre további könyvtárakat az src könyvtárban, hogy a fájl elérési útja így nézzen ki: src/com/qwertovsky/helloworld/HelloWorld.java.
Összeállítás
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java A bin könyvtár automatikusan az src-hez hasonló könyvtárszerkezettel rendelkezik.
HelloWorld "---bin " "---com " "---qwertovsky " "---helloworld " "---HelloWorld.class "---src "---com "---qwertovsky "-- -helloworld "---HelloWorld.java Run
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld

Ha több fájl van a programban

Változtassunk a programon. Ne figyelj a logikára. Ő nem.
HelloWorld.java
01 02 03 04 05 06 07 08 09 10 11 12 13 csomag 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("Hello World!"); System.out.println( a+"+"+b+"="+kalc.összeg(a,b)); ) )
Calculator.java
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 csomag com.qwertovsky.helloworld; import com.qwertovsky.helloworld.operation.Adder; public class Calculator ( public int sum(int... a) ( Összeadó összeadó=new Összeadó(); for(int i:a) ( adder.add(i); ) return adder.getSum(); ) )
Adder.java
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 csomag com.qwertovsky.helloworld.operation; public class Összeadó ( private int sum; public Adder() ( sum=0; ) public Adder(int a) ( this.sum=a; ) public void add(int b) ( sum+=b; ) public int getSum() (visszatérő összeg; ) )
Összeállítás
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java src\com\qwertovsky\helloworld\HelloWorld.java:9: nem található szimbólum szimbólum: osztály Számológép helye: class com.qwertovsky.helloworld.HelloWorld=new. számológép(); ^ src\com\qwertovsky\helloworld\HelloWorld.java:9: nem található szimbólum szimbólum: osztály Számológép helye: class com.qwertovsky.helloworld.HelloWorld Calculator calc=new Calculator(); ^ 2 hiba A hiba abból adódik, hogy a fordításhoz szükség van a használt osztályok (a Számológép osztály) forráskódjait tartalmazó fájlokra. Meg kell adnia a fájlokat tartalmazó könyvtárat a fordítónak a -sourcepath kulcs használatával.
Összeállítás
javac -forrásútvonal ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java Futtatás
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld Hello Word 2+3=5

Ha meglep az eredmény

Lehetőség van hibakereső elindítására. Erre való a jdb.
Először a -g kapcsolóval fordítjuk le, hogy a hibakeresőnek legyen információja.
javac -g -forrásútvonal ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java Indítsa el a hibakeresőt
jdb -classpath bin -sourcepath src com.qwertovsky.helloworld.HelloWorld A jdb inicializálása ... > A hibakereső elindítja belső terminálját a parancsok beviteléhez. Ez utóbbi súgója a help paranccsal jeleníthető meg.
Állítson be töréspontot a Számológép osztály 9. sorában
> álljon meg itt: com.qwertovsky.helloworld.Számológép:9 Töréspont elhalasztása com.qwertovsky.helloworld.Számológép:9. Az osztály betöltése után lesz beállítva. Elindulunk végrehajtásra.
> run run com.qwertovsky.helloworld.HelloWorld Set uncaught java.lang.Throwable Set deferred uncaught java.lang.Throwable > VM Started: Set deferred breakpoint com.qwertovsky.helloworld.Calculator:9 Hello World! Töréspont találat: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=9 bci=0 9 Adder adder=new Adder(); Az irányok meghatározásához megjelenítheti a forráskód egy darabját, ahol a kurzor jelenleg található.
fő lista 5 public class Calculator 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(); Tudja meg, mi az a változó.
főnyomtatás a a = int (id=340) fő dump példánya a a = ( 2, 3 ) fő megálló a com.qwertovsky.helloworld.operation.Adder:19 töréspont elhalasztása com.qwertovsky.helloworld.operation.Adder:19. Az osztály betöltése után lesz beállítva. Folytassuk a végrehajtást.
main cont > Halasztott töréspont beállítása com.qwertovsky.helloworld.operation.Adder:19 Töréspont találat: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=19 bci=0 19 sum+=b ; fő lista 15 ) 16 17 public void add(int b) 18 ( 19 => sum+=b; 20 ) 21 22 public int getSum() 23 ( 24 return sum; main print summa sum = 0 main print b b = 2 in the aktuális sort, és nézze meg, hogy az összeg egyenlő 2-vel.
fő lépés > Lépés kész: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=20 bci=10 20 ) main print sum sum = 2 Emelkedjünk az Összeadó osztályból a Calculator osztályba ez úgy hívta.
fő lépés felfelé > Lépés kész: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=10 bci=36 10 for(int i:a) Töréspont eltávolítása
fő clear com.qwertovsky.helloworld.operation.Adder:19 Eltávolítva: breakpoint com.qwertovsky.helloworld.operation.Adder:19 fő lépés > Lépés befejeződött: "thread=main", com.qwertovsky.helloworld.Calculator.sum() , sor=12 bci=30 12 adder.add(i); A következő parancs használatával elkerülheti a metódusokba lépést.
main next > Lépés befejezve: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=10 bci=36 10 for(int i:a) main next > Lépés befejezve: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=14 bci=42 14 return adder.getSum(); Ellenőrizzük a kifejezés értékét és befejezzük a végrehajtást.
main eval adder.getSum() adder.getSum() = 5 main cont > 2+3=5 Az alkalmazás kilépett

Jó lenne tesztelni

JUnit-et használunk.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 csomag com.qwertovsky.helloworld; statikus import 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) nyilvános osztály Tesztkalkulátor ( int várható; int arg; @Parameters nyilvános statikus gyűjtemény paraméterek() ( return Arrays.asList(new int( ((4), (2, 2)) ,((-1),(4, -5)) ,((0),(0,0,0) ) ,((0),()) )); ) public Tesztkalkulátor(int várt, int arg) ( this.expected=expected; this.arg=arg; ) @Test public void testSum() ( Calculator c=new Calculator (); asserEquals(expected,c.sum(arg)); ) )
Összeállítás
mkdir test_bin javac -classpath lib/path/junit-4.8.2.jar -sourcepath ./src -d test_bin test/com/qwertovsky/helloworld/TestCalculator.java Futtassa. Az osztályútvonal-elválasztó Windows rendszeren ";", Linuxon pedig ":". Mindkét határoló nem működik a Cygwin konzolon. Talán a ";"-nek működnie kellene, de a rendszer parancselválasztóként kezeli.
java -classpath lib/path/junit-4.8.2.jar:./test_bin org.junit.runner.JUnitCore com.qwertovsky.helloworld.TestCalculator JUnit verzió 4.8.2 .... Idő: 0,031 OK (4 teszt)

Hozzunk létre egy könyvtárat

A Calculator osztály hasznosnak bizonyult, és számos projektben használható. Mindent, ami a Számológép osztállyal kapcsolatos, helyezzünk át egy külön projektbe.
HelloWorld "---bin "---src "---com "---qwertovsky "---helloworld "---HelloWorld.java kalkulátor "---bin "---src ""---com " "---qwertovsky " "---calculator " "---Calculator.java " "---operation " "---Adder.java "---test "---com "---qwertovsky " ---calculator "---TestCalculator.java A forrásokban lévő csomagok nevét is módosítsa. A HelloWorld.java-ban hozzá kell adni a sort
import com.qwertovsky.calculator.Calculator; Összeállítás.
cd Számológép javac -sourcepath src -d bin src/com/qwertovsky/calculator/Calculator.java Jar archívum készítése
jar cvf calculator.jar -C bin . hozzáadott jegyzék hozzáadás: com/(in = 0) (out= 0) (tárolt 0%) hozzáadás: com/qwertovsky/(in = 0) (out= 0) (tárolt 0%) hozzáadás: com/qwertovsky/calculator/ (in = 0) (out= 0) (tárolt 0%) hozzáadás: com/qwertovsky/calculator/Calculator.class(in = 497) (out= 373) (deflált 24%) hozzáadás: com/qwertovsky/calculator/operation /(in = 0) (out= 0)(tárolt 0%) hozzáadás: com/qwertovsky/calculator/operation/Adder.class(in = 441) (out= 299)(leeresztett 32%) futtassa a programot a tárolóban Könyvtár.

Meg kell találnunk, mi van a könyvtárban

Kicsomagolhatja az archívumot egy zip-kicsomagoló segítségével, és megnézheti, milyen osztályok vannak a könyvtárban.
A javap disassembler segítségével bármely osztályról információt szerezhet.
javap -c -classpath calculator.jar com.qwertovsky.calculator.Calculator A "Calculator.java" nyilvános osztályból összeállított com.qwertovsky.calculator.Calculator kiterjeszti a java.lang.Object( public com.qwertovsky.calculator.Calculator(); Code : 0: aload_0 1: invokespecial #1; //Módszer 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; //Módszer com/qwertovsky /calculator/operation/Adder." ":()V 7: astore_2 8: aload_1 9: astore_3 10: aload_3 11: arraylength 12: istore 4 14: iconst_0 15: istore 5 17: iload 5 19: iload 4 21: if_load2i25 a:4load2i 27: iaload 28: istore 6 30: aload_2 31: iload 6 33: invokevirtual #4 //Módszer com/qwertovsky/calculator/operation/Adder.add:(I)V 36: iinc 5, 1 39: goto 17 : aload_2 43: invokevirtual #5; //Módszer com/qwertovsky/calculator/operation/Adder.getSum:()I 46: ireturn az Adder osztály add metódusát hívják meg.A sum metódus befejezése után az Adder.getSum() nak, nek hívják.
A -c kapcsoló nélkül a program csak a változók és metódusok listáját adja meg (ha a -private kapcsolót használja, akkor az összeset).
javap -private -classpath calculator.jar com.qwertovsky.calculator.operation.Adder Az "Adder.java" publikus osztályból összeállított com.qwertovsky.calculator.operation.Adder kiterjeszti a java.lang.Object(privát int összeget; public com.qwertovsky .calculator.operation.Adder(); public com.qwertovsky.calculator.operation.Adder(int); public void add(int); public int getSum(); )

Jobb, ha dokumentálja a könyvtárat

Ehhez változtassuk meg a számológép osztályát.
A dokumentáció a következő paranccsal generálható. Ha hiba történik, a program megjeleníti a lehetséges opciók listáját.
mkdir doc javadoc -d doc -charset utf-8 -sourcepath src -author -subpackages com.qwertovsky.calculator

jar archívum aláírható

Ha digitális aláírással kell aláírnia a könyvtárát, a Keytool és a jarsigner segít.
Aláírást generálunk.
keytool -genkey -keyalg rsa -keysize 2048 -alias qwertokey -keystore elérési út/to/qwerto.keystore Kulcstár jelszavának megadása: Új jelszó megadása: Mi az Ön kereszt- és vezetékneve? : Valery Qwertovsky Mi a szervezeti egység neve? : Qwertovsky Mi a szervezeted neve? : Qwertovsky Mi a városod vagy helységed neve? : Tver Mi az Ön államának vagy tartományának a neve? : Tverskaya obl. Mi ennek az egységnek a kétbetűs országkódja? : RU Helyes a CN=Valerij Qwertovszkij, OU=Qwertovszkij, O=Qwertovszkij, L=Tver, ST=Tverszkaja obl., C=RU? : y Adja meg a kulcs jelszavát (VISSZA, ha megegyezik a kulcstároló jelszavával): Írja be újra az új jelszót:
Tanúsítvány-aláírási kérelem (CSR) generálása
keytool -certreq -file path/to/qwertokey.crt -alias qwertokey -keystore elérési út/to/qwerto.keystore Elküldi a kapott fájl tartalmát a hitelesítésszolgáltatónak. Tanúsítványt kapunk a tanúsító hatóságtól. Fájlba mentjük (például qwertokey.cer) és importáljuk a tárba
keytool -import -trustcacerts -keystore elérési út/to/qwert.keystore -alias qwertokey -fájl elérési útja/to/qwertokey.cer A jar archívum aláírása
jarsigner -keystore path/to/qwerto.keystore calculator.jar qwertokey A qwertokey.cer fájlt elküldjük mindenkinek, aki ellenőrizni akarja az archívumot. Ezt így ellenőrzik
jarsigner -verify -verbose -certs -keystore path/to/qwerto.keystore calculator.jar

A könyvtár használata

Van egy HelloWorld program, amely a Calculator könyvtár osztályt használja. A program lefordításához és futtatásához tartalmaznia kell a könyvtárat.
Összeállítás
cd HelloWorld javac -sourcepath src -d bin -classpath elérési út/to/calculator.jar src/com/qwertovsky/helloworld/HelloWorld.java Futtatás
java -classpath bin:path/to/calculator.jar com.qwertovsky.helloworld.HelloWorld

A program összeállítása

Ezt különböző módon lehet megtenni.

Első út

cd HelloWorld echo főosztály: com.qwertovsky.helloworld.HelloWorld>manifest.mf echo osztályútvonal: lib/calculator.jar >>manifest.mf mkdir lib cp elérési út/to/calculator.jar lib/calculator.jar jar - cmf manifest.mf helloworld.jar -C bin . Vannak itt finomságok.
Sorban
főosztály: com.qwertovsky.helloworld. A HelloWorld nem tartalmazhat záró szóközöket.
A második finomság leírása: ugyanabban a sorban kell átmenni a következő sorba. Ez akkor történik, ha a jegyzéket egy harmadik fél archiváló archiválja.
A jar program nem tartalmazza a jegyzék utolsó sorát a jegyzékben, hacsak nincs sortörés a végén.
Egy másik szempont: a manifestben ne legyenek üres sorok a sorok között. A „java.io.IOException: érvénytelen jegyzékformátum” hibaüzenet jelenik meg.

Az echo parancs használatakor csak a főosztály sor végén lévő szóközt kell figyelni.

Második út

cd HelloWorld echo osztályútvonal: lib/calculator.jar >manifest.mf mkdir lib cp elérési út/to/calculator.jar lib/calculator.jar jar -cmef manifest.mf com.qwertovsky.helloworld.HelloWorld helloworld.jar -C bin . Ily módon elkerüljük a hibát a szóközzel a főosztályban.

Harmadik út

cd HelloWorld mkdir lib cd lib jar -xvf elérési út/to/kalkulátor.jar com/ létrehozva: com/ létrehozva: com/qwertovsky/ létrehozva: com/qwertovsky/calculator/ felfújva: com/qwertovsky/calculator/Calculator.class létrehozva: com /qwertovsky/calculator/operation/ felfújva: com/qwertovsky/calculator/operation/Adder.class cd .. cp -r bin/* lib/ jar -cef com.qwertovsky.helloworld.HelloWorld helloworld.jar -C lib . rm -r lib Szerelje be a szükséges könyvtárkódot a végrehajtható fájlba.

A futtatható jar fájl futtatása

A calculator.jar fájl nem futtatható. De a helloworld.jar futtatható.
Ha az archívum az első két módon jött létre, akkor mellette ugyanabban a könyvtárban kell lennie egy lib mappának a calculator.jar fájllal. Az ilyen korlátozások abból fakadnak, hogy a végrehajtható fájlhoz viszonyított elérési út az osztályútvonalban van megadva a jegyzékben.
cd Calculator ls ../HelloWorld/lib calculator.jar java -jar ../HelloWorld/helloworld.jar A harmadik metódus tartalmazza a szükséges könyvtárakat a végrehajtható fájlban. Nem kell a közelben tartania a szükséges könyvtárakat. Ugyanúgy fut.
java -jar ../HelloWorld/helloworld.jar

Hogyan kezeljük a JavaEE alkalmazásokat

Hasonlóképpen. Csak a fordításhoz szükséges könyvtárakat kell átvenni a használt alkalmazáskiszolgálóról. Ha JBosst használok, akkor a servlet lefordításához valami ilyesmit kell tennem
javac -classpath/to/jboss/common/lib/jboss-servlet*.jar -d ./classes src/com/qwertovsky/app/servlets/MenuSt.java
A JavaEE alkalmazásarchívum szerkezetének követnie kell egy bizonyos formátumot. Például
my.ear `---META-INF | `---manifest.mf `---lib | `---mylib.jar `---my.war | `---META-INF | | `---manifest.mf | `---WEB-INF | | `---lib | | | `---myweblib.jar | | `---osztályok | | | `---com | | | `---... | | `---web.xml | `---index.html | `---<остальное веб-содержимое (страницы, изображения)>`---myejb.jar
Az alkalmazás futtatásának módja magán a kiszolgálón a parancssor használatával kiszolgálónként eltérő.

Remélem, hogy valakinek ez a cikk csalólap lesz a Java-val való munkavégzéshez parancs sor. Ezek a készségek segítenek megérteni az Ant forgatókönyvek tartalmát és jelentését, és megválaszolják a bonyolultabb interjúkérdéseket, mint a „Melyik IDE-t részesíti előnyben?”.

Most megmutatom, hogyan lehet egy egyszerű java programot futtatni bármilyen környezet, például alkalmazáskiszolgáló nélkül. Elég egy osztály, amelyben a fő metódus kerül meghatározásra.

csomag com.blogspot;
nyilvános osztály FejlesztőMegjegyzések(
public static void main(String args) (
if (args.length == 0) (
System.out
.println("Parancssori paraméterként adja át a látni kívánt szöveget.");
) más (
System.out.println("Azt adtad meg: " + args);
}
System.out.println("A forrás elérhető a developer-remarks.blogspot.com címen");
}
}
A parancssorban a program indításakor át kell adni a képernyőn megjelenő szöveget. Ellenkező esetben a megfelelő üzenet jelenik meg. A programnak átadott összes paraméter a fő metódus által elfogadott karakterláncok args tömbjében fog szerepelni. Ha nem adunk át paramétereket, a tömb hossza nulla lesz.

Most állítsuk be az Eclipse-t, hogy képes legyen a jar fájl futtatására a terminálról. Ehhez először létre kell hoznia egy futtatási konfigurációt. Válassza a Futtatás - Konfigurációk futtatása lehetőséget a felső menüből. Megnyílik a következő ablak:

A bal oldali listában válassza ki az alkalmazás típusát: Java alkalmazás. Ott hozzon létre egy új konfigurációt a képernyőképen látható módon. Ehhez válassza ki a célprojektet és a fő metódussal rendelkező osztályt.

Most már készen állunk projektünk exportálására egy végrehajtható jar fájlba. Ehhez kattintson a projektre a jobb egérgombbal, válassza az "Exportálás ..." lehetőséget, a következő ablak nyílik meg:


Válassza a Runnable Jar fájlt a fanézetben. A keresés nagymértékben leegyszerűsíthető, ha név szerint szűrjük a projekttípust. Kattintson a Befejezés gombra. Ezt követően megnyílik egy ablak az exportálási beállításokhoz:


Ebben válassza ki a korábban létrehozott indítási konfigurációt. Ezután adja meg a jar fájl teljes nevét. A „Könyvtárkezelés” részben válassza a „Kivonat a szükséges könyvtárakból generált JAR-ba” lehetőséget (csomagolja ki a szükséges könyvtárakat a generált archívumba). Kattintson a Befejezés gombra, és létrejön a végrehajtható archívum.

Mivel ebben a példában nincsenek függőségek más könyvtáraktól, az első elemet választjuk. De ha több tíz vagy akár több száz függőségünk lenne, akkor helyesebb lenne a harmadik "Szükséges könyvtárak másolása a generált JAR melletti almappába" elemet kiválasztani (a szükséges könyvtárakat bemásolni egy alkönyvtárba, a név egy részébe amelyek közül megfelel a létrehozandó archívumnak ), hogy elkerüljük a végrehajtható fájl „felfújását”. Ha a harmadik elemet választottuk volna, akkor a szükséges könyvtárak egy külön mappába kerültek volna.

Most nyisson meg egy terminált, és lépjen abba a könyvtárba, ahol a végrehajtható jar létrejött. Írja be a következő parancsot:

java -jar fejlesztő-remarks.jar hello world!

Így mondja meg a java értelmezőnek, hogy futtassa az archívumunkat. Vegye figyelembe, hogy a parancssorban a szóközt és a felkiáltójelet fordított perjellel kell megszakítani.

A bemutatott megközelítés hasznos lehet oktatási és tesztelési célokra. Például létrehozni egy klienst, amely felhívja az EJB-t, és kinyomtatja a munka eredményét a konzolra. Ennek a megközelítésnek az az előnye, hogy mindenféle környezet nélkül elindul a jar archívum. Elég egy JDK/JRE. A források rendelkezésre állnak.

Feladat: Futtasson egy Java alkalmazást a parancssorból.

Például készítettem egy kis programot, aminek ki kell számítania egy kör területét egy adott sugárhoz. A program két osztályt tartalmaz: GeometryWF (fő) és Circle. Ennek egy konzolalkalmazást kell létrehoznia. A java alkalmazást a parancssorból kell elindítani.

csomag geometria wf;
nyilvános osztály GeometryWF(
public static void main(String args) (
próbálja meg(
if (args. egyenlő("kör")) (
Circle c = new Circle(Double.parseDouble(args));
System.out.println("Kör kerülete: "+c.perimeter());
System.out.println("Körária: "+c.area());
}
}
catch(ArrayIndexOutOfBoundsException e) (
System.out.println("Érvénytelen bemeneti paraméterek!");
}
}
}

csomag geometria wf;
nyilvános osztály Circle(
nyilvános kettős r = 0;
nyilvános kör(dupla r) (
this.r = r;
}
nyilvános kettős terület() (
return(Math.PI*r*r);
}
nyilvános kettős kerület() (
return(2*Matek.PI*r);
}
}

A következő lépés a projekt felépítése. A fejlesztéshez NetBeans IDE-t használok. Ennek megfelelően az összeszerelés a "Shift + F11" ("Projekt törlése és felépítése") megnyomásával történik. Ennek eredményeként egy kész jar fájlt kapok
(C:\Users\Jan\Documents\NetBeansProjects\GeometryWF\dist\GeometryWF.jar).

Indítsa el a parancssorból.

A parancssor elindítása előtt kattintson a jobb gombbal a "Sajátgép" ikonra, és nyissa meg a "Tulajdonságok" lehetőséget. Lépjen a "Speciális rendszerbeállítások" -> "Környezeti változók" menüpontra. A "Rendszerváltozók" részben létre kell hoznia egy új "JAVA_HOME" változót "" értékkel (nekem "C:\glassfish3\jdk\bin" van). Ugyanezt az elérési utat kell beírni a pontosvessző után a meglévő Path változóba. Mindent elmentünk, és futtatjuk a parancssort.

A CHDIR paranccsal módosítjuk a könyvtárat a jar fájlt tartalmazó mappába:

C:\Users\John> CHDIR C:\Users\John\Documents\NetBeansProjects\GeometryWF\dist\

Elindítjuk a java alkalmazást a parancssorból a "java -jar" paranccsal.

C:\Users\John\Documents\NetBeansProjects\GeometryWF\dist> java -jar GeometryWF.jar circle 9

A kimeneten a következőket kapjuk:

Kör kerülete: 56.548667764616276
Kör négyzet: 254.46900494077323



Támogasd a projektet – oszd meg a linket! Köszönjük!
Olvassa el is
kakasviadal játékszabályok kakasviadal játékszabályok Mod a minecraft 1.7-hez 10 nézhető recept.  Receptek tárgyak készítéséhez Minecraftban.  Fegyverek a Minecraftban Mod a minecraft 1.7-hez 10 nézhető recept. Receptek tárgyak készítéséhez Minecraftban. Fegyverek a Minecraftban Shilling és font – a szavak eredete Shilling és font – a szavak eredete