Felépítése és futtatása egy java programot

projekt épít

Összeszerelése (angol szerelvény.) - bináris fájl futtatható kódot tartalmazó, vagy (ritkábban) a másik előkészített egy információs termék.







szerelés automatizálás - színpadi scripting vagy automatizálás széles körű feladatokat kapcsolatban a szoftver által használt fejlesztők a napi tevékenységet, beleértve a tevékenység, mint:

  1. fordítsd le a forráskódot a bináris kód
  2. összeszerelés bináris kód
  3. tesztvégrehajtás
  4. a kibontakozó a program a termelési platform
  5. írásban dokumentáció vagy leírást a változások az új verzió

Ahhoz, hogy épít automatizálási projektek hagyományosan alkalmazott szerelési rendszereket, mint például, hogy a UNIX-szerű rendszerek és nGyőződjön Microsoft fordító. Hagyományosan az írás fájlokat építeni a projekt keretében ezek a rendszerek nem triviális feladat. Természetesen kizárólag Mictosoft Visual Studio nem is sejti, akkor az ilyen fájlokat, mint egy integrált fejlesztői környezet elég kényelmes elrejti az egész rendszer a munka, így ezen kívül bizonyos párbeszédpanelek és a Build gombra. De komplex projektek segítségével sok harmadik fél könyvtárak és cross-platform projekt, ez a megközelítés gyakran elfogadhatatlan.

összeszerelés elvek java

1. Hogyan működik a Java fordító

a program szövegében --- \

-> javac -----> * .class

Növekedés - [-CP] - /

a program szövegében - a program forráskódját a java.

A kiegészítők - osztályok, amelyek figyelembe kell venni a szerelés közben (könyvtár).

Ennek eredményeként, akkor kap egy sor kiterjesztésű fájlok osztályban. Azaz, ha az általunk használt harmadik fél könyvtárak - meg kell mondani nekik a szerelvény. Meg lehet összeállítani osztályok vagy gyűjtött alrendszer.

Nem mindig szükséges lefordítani További könyvtárak (például, ha van egy program a programban fájlba 1). De ha minden ugyanaz van szükség, meg kell kezdeni az érvelés «-CP» (rövidítése -classpath) erre java compiler. Ezt követően érvelés a könyvtárak listáját (jar fájlokat, vagy osztály fájlok) elválasztott szimbólum elválasztó fájlok (* nix it „:” a windows „;”).

Egy példa programkészítéskor egyetlen fájlból:

Példa programot összeállítás további könyvtárakra c «mylib» és «my2ndLib»:

javac -CP myLib.jar: my2ndLib.jar NotStandartHelloWorld.java

A java nincs különbség az összegyűjtött könyvtár futtatható alkalmazást vagy alrendszer. Ez azt jelenti, hogy ha azt akarjuk, hogy hozzon létre egy önálló entitás egyetlen fájlban, akkor hozzon létre egy jar fájlt. Például, ha létrehoz egy könyvtárat, akkor a jar fájl egy sor osztályok, hogy lehet használni a többi fejlesztő, ha egy alrendszer, ez része a funkcionális szett (osztályokba) készült hatályán kívül a fő egység, de használnak benne (valami ilyesmi privát könyvtár), stb ..

2. végrehajtására Java-programot.

* .class ----- --- \

Növekedés - [-CP] - /

Végrehajtási osztály működik hasonló módon az összeállítás (is használják ugyanazokat az érveket).

Ha összeállításuk után megvan 10 osztály, akkor az egyetlen osztály, amely tartalmazza a fő funkciója, a többi osztály kell bemutatni, mint egy könyvtár.

Például a program futtatásához c kiegészítő könyvtár «soutěž», amely abban a könyvtárban található «lib» kinéznie:

java -CP lib / sout.jar HelloWorld

Alapértelmezésben minden osztály az aktuális könyvtárat tartalmazza az útvonal (-CP osztályok az aktuális könyvtárban nem adható meg). Mit értünk, amikor összeállítottuk a programot, és ennek eredményeként van egy csomó osztály egy mappában, akkor futhat csak a fő osztály, más osztályokba java megpróbálja megtalálni önmagát az aktuális könyvtárban (még ha ezek található almappákat, java, és ott peep).







Ez a megközelítés elfogadható, ha van egy kis osztály, de a nagy rendszerek, felsorolva az összes osztályok nem lehetséges (a szám meghaladhatja ezer ...). Ezért nem tudja elvégezni osztály és speciálisan épített jar-fájl. Ehhez meg kell adnia az -jar érveket.

3. Jar-fájl

Jar-fájl - egy ZIP (azaz, akkor csomagolja ki). Jar-fájlnak tartalmaznia kell egy sor osztályok és a fájl META-INF / manifest.mf, amely leírja a jellemzőit jar-fájl.

A fő lehetőség, hogy hozzon létre egy Jar-file:
jar CF jar-fájl input-fájl (ok)

Jar - egy eszközt, és egy sor eszközt, hogy kapsz, ha telepíti java.

jar program elfogadja az érveket a régi UNIX-style: az első, a kulcsokat, majd a program érvek az érv kulcsfontosságú meghatározott utolsó, nem adja „-” mielőtt az érveket csoportosított rövid argumentum ( „CF” azt jelenti, «-c -f»).

  1. C. lehetőség - azt mondja, hogy szeretne létrehozni (create) jar-fájl.
  2. Lehetőség - azt mondja, hogy szeretne létrehozni egy fájlt (fájl) egy bizonyos nevet (amikor végrehajtja ezt Például hozzon létre egy fájl nevét «jar-file.jar»).
  3. Argumentum input-fájl (ok) egy szóközzel elválasztott lista egy vagy több fájlt szeretne belefoglalni a JAR-fájlt. input-fájl (ok) érvelés tartalmazza a „*” jelet. Ha bármelyik bemenet egy könyvtár tartalmát az említett könyvtárak adunk a JAR archívum rekurzív.

Amikor létrehoz egy JAR-fájlt, akkor automatikusan megkapja az alapértelmezett nyilvánvaló fájl (ha nincs megadva a bemeneti fájlokat - akkor automatikusan létrejön). A jar-fájl lehet csak egy nyilvánvaló fájlt a megadott elérési utat:

A teljes szerkezete a kiáltvány a következő:

Nyilvánvaló-Version: 1.0Sozdannaya-By: 1.6.0 (Sun Microsystems Inc.)

Ezek a vonalak azt jelzik, hogy nyilvánvaló elemek formájában „fejléc: érték” párokat. A fejléc neve elválasztják az értéket egy kettőspont. Az alapértelmezett nyilvánvaló megfelel 1.0 verzió A manifeszt leírás jött létre verzió 1.6.0 JDK.

A kiáltvány is tartalmazhat információt más fájlok nem csomagolják archív (külső könyvtárakat, amelyek szükségesek a művelet, ez lesz szó részletesebben lásd alább). Pontosan milyen információkat jar-fájl kell írni a nyilvánvaló attól függ, hogyan használja a JAR-fájlt. Az alapértelmezett nyilvánvaló nem feltételez arról, milyen információkat kell rögzíteni kb más fájlokat.

Ahhoz, hogy hozzon létre egy jar-fájl a kiáltványban:
jar CFM jar-fájlok-túlmenően bemeneti-fájl (ok)

A kulcs «f» és «m» kíván mind érvek, ezért először meghatározza a kulcsot, majd sorrendben adja (ha szükséges) a hiányzó érveket. Az elején utaltunk érv «f», majd «m», így az első argumentum a kimeneti fájl nevét, a második pedig a neve (és elérési útvonalát) az nyilvánvaló.

Ha írt egy kiáltványt nem tartozik a fenti lehetőségek, akkor a rendszer automatikusan hozzáadja (vagyis jól adja meg a nyilvánvaló, vagy egy üres fájl, ez ugyanaz a dolog, gyakran alkalmazzák a korai fejlesztés ...). Azaz, ha a kiáltvány a következő:

Ez, a végső jar-fájl, akkor be kell mutatni a következő formában:

Nyilvánvaló-Version: 1.0Sozdannaya-By: 1.6.0 (Sun Microsystems Inc.) Main-Class: Main

Ha alkalmazást fejleszteni. ami jön a JAR-fájlt, akkor kell valamilyen módon jelezni, hogy melyik osztály a JAR-fájl az alkalmazás belépési pontja (amely a fő funkció). Akkor ezt az információt a Main-Class fejléc a jegyzékben, amelynek általános formája:

Main-Class: az osztály neve

Jelentősége osztály neve az az osztály, amely a bemeneti pontja alkalmazása.

Miután telepítette a Main-Class fejléc a jegyzékben, akkor fennáll a JAR fájlt az alábbi űrlap Java parancsot:

Meghatározása nélkül a fő osztály a nyilvánvaló ad futtatja a programot az alábbiak szerint:

Ha meg szeretné határozni a fő osztály a jegyzékben, akkor nem kell, hogy hozzon létre a teljes nyilvánvaló, megadhatja a szükséges paraméterek, ha hívja a jar:

jar CFE app.jar MyApp MyApp.class

Opció e - sugallja egy belépési pont a program (BelépésiPont).

Meg kell néznünk, hogy osztályokat más JAR fájlokat a JAR-fájlt (ha egy harmadik fél könyvtárat az alkalmazás). Ehhez meg kell, hogy tartalmazza az alábbi mezőket az nyilvánvaló:

Class-Path: jar1 név jar2 név directory-name / jar3-name

Ez az út képest a helyét a végrehajtható jar. Például NetBeans helyezi a könyvtárak a lib mappában mellé építeni az alkalmazást, és így mutat utat a könyvtárba.

Vegyünk egy utolsó példa a manifeszt a futtatható jar-fájl a könyvtárak, amelyek vele a «lib» mappát:

Nyilvánvaló-Version: 1.0Sozdannaya-By: 1.6.0 (Sun Microsystems Inc.) Main-Class: net.mycompany.product1.MainClass-Path: lib / recoder.jar lib / io-common.jar lib / f