Construirea și rularea unui program Java

Asamblarea (asamblare engleză.) - fișier binar care conține cod executabil, sau (mai puțin frecvent), celălalt pregătit pentru un produs de informare.

Ansamblu de automatizare - Scripting stadiul sau automatizarea unei game largi de sarcini în legătură cu software-ul care sunt utilizate de către dezvoltatori în activitățile lor de zi cu zi, inclusiv activități, cum ar fi:

1. compilare de cod sursă în cod binar

2. Ansamblul de cod binar

3. Executarea testului

4. Implementarea programului pe o platformă de producție

5. documentație scris sau descriere a modificărilor la noua versiune

Pentru a construi proiecte de automatizare utilizate în mod tradițional, sisteme de asamblare, cum ar fi face pe Unix cum ar fi sistemele și nmakedlya compilator Microsoft. În mod tradițional scris fișiere pentru a construi proiectul în cadrul acestor sisteme nu este o sarcină banală. Desigur, folosind doar Mictosoft Visual Studio chiar nu poate suspecta existența acestor fișiere ca un mediu de dezvoltare integrat suficient de confortabil ascunde întreaga schemă de lucru, lăsând în afara unor casete de dialog și butonul Build. Dar pentru proiecte complexe, folosind o mulțime de biblioteci terțe părți și proiecte cross-platform, această abordare este adesea considerată inacceptabilă.

Ca parte a tehnologiei .NET - fișier binar care conține cod gestionat. Atunci când compilatorul .NET creează un modul EXE sau DLL, conținutul acestui modul este numit de asamblare. Ansamblul conține un număr de versiune, metadate și instrucțiuni.

Prima regulă face să îl reconecteze programul atunci când modificați oricare dintre fișierele obiect. A doua regulă spune că fișierele obiect depind de fișierele sursă corespunzătoare. Orice modificare a fișierului cu codul sursă va face ca acesta să recompilați. Următoarele sunt câteva reguli indică, prin orice fișiere antet depinde de fiecare dintre fișierele obiect. Acest exemplu nu utilizează nici o funcție a unui set de mărci, nu este optim (de ce recompilați și reconstrui tot atunci când schimbați 1 fișier) și greoaie pentru o simplă și intuitivă. Când sunați face, va fi luată prima regulă. Reguli permit recursivitate, astfel încât scrierea unui benigne (astfel încât colector nu a murit în ciclul etern) să-fișier, să se întindă pe umerii dezvoltatorului.

2. Principii ale ansamblului în Java

2.1. Cum compilatorul java

Textul programului - un cod sursă de program în Java.

Suplimentele - clase care trebuie luate în considerare în timpul asamblării (bibliotecă).

Ca rezultat, vom obține un set de fișiere cu extensia clasei. Adică, dacă folosim biblioteci terță parte - trebuie să le spunem în adunare. Acesta poate fi compilat clase sau subsistem colectate.

Nu este întotdeauna necesar să se precizeze compila biblioteci suplimentare (de exemplu, dacă avem un program în fișierul program 1). Dar dacă tot același lucru este necesar, trebuie să înceapă cu argumentul «-cp» (prescurtarea de la --classpath) pentru acest compilator java. Ca urmare a acestui argument merge lista de biblioteci (fișiere jar, sau fișiere de clasă), separate prin fișierele simbol de separare (* nix-l „:“ în Windows este „;“).

Un exemplu de elaborare a unui program dintr-un singur fișier:

EXEMPLUL program de compilare biblioteci suplimentare c «myLib» și «my2ndLib»:

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

În java nu există nici o distincție între bibliotecă, aplicația sau subsistemul executabil colectate. Ceea ce se înțelege este că, dacă doriți să creați o entitate independentă într-un singur fișier, creați un fișier jar. De exemplu, dacă creați o bibliotecă, acesta va fi un fișier borcan cu un set de clase care pot fi utilizate de către alți dezvoltatori, în cazul în care un subsistem, acesta face parte din funcționale (set de clase) efectuate în afara domeniului de aplicare al unității principale, dar a folosit în ea (ceva de genul biblioteca privată), etc.

2.2. Executie de Java program.

Clasa de execuție a lucrărilor într-un mod similar cu compilarea (utilizată chiar și aceleași argumente).

Dacă după compilare avem 10 clase, atunci singura clasă care conține funcția principală, celelalte clase ar trebui să fie prezentate ca o bibliotecă.

De exemplu, executați programul c biblioteca suplimentară «Sout», care se află în directorul «lib» arata astfel:

java -cp lib / HelloWorld sout.jar

În mod implicit, toate clasele din directorul curent este inclus în calea (-cp pentru clasele din directorul curent nu trebuie specificat). La ce ne referim atunci când am compilat programul, și ca urmare a primit o mulțime de clase într-un dosar, atunci putem rula numai clasa principală, alte clase Java încearcă să se găsească în directorul curent (chiar dacă acestea sunt situate în subfoldere, java, și acolo piuit).

Această abordare este acceptabilă atunci când avem un pic de clasă, dar pentru sisteme mari, enumerând toate clasele nu este posibilă (numărul poate depăși o mie ...). Prin urmare, nu putem efectua și clasa special construite borcan-fișier. Pentru a face acest lucru, trebuie să specificați argumentele -jar.

java -cp lib.jar -jar myApp.jar

Jar-fișier - o arhivă ZIP (de exemplu, puteți să-l dezarhivați). Jar-fișier ar trebui să conțină un set de clase și fișierul META-INF / MANIFEST.MF, care descrie caracteristicile jar-fișier.

Opțiunea principală de a crea un Jar-fișier:
borcan cf borcan-fișier de intrare-fișier (e)

Jar - un instrument și un set de instrumente pe care le obține atunci când instalați Java.

Programul borcan acceptă argumente în-UNIX stil vechi: în primul rând, sunt cheile, atunci argumentele de program cu tasta argumentul specificat ultima, nu se specifică „-“ înainte de argumentele grupate argumentul scurt ( „cf“ înseamnă «-c -f»).

1. Opțiunea C - spune că doriți să creați (a crea) jar fișier.

2. Opțiunea f - spune că doriți să creați un fișier (fișier) cu un anumit nume (atunci când efectuați acest exemplu, creați un fișier cu numele «-borcan file.jar»).

3. Argumentul de intrare-fișier (e) este o listă separată cu spațiu de unul sau mai multe fișiere pe care doriți să le includeți în JAR-fișier. input-fișier (e) argumentul poate conține simbolul „*“. Dacă oricare dintre intrare este un director, conținutul acestor directoare se adaugă la arhiva JAR recursiv.

Când creați un fișier JAR-, primește automat un fișier manifest implicit (dacă nu ați specificat în fișierele de intrare - acesta va fi creat automat). Borcanul-fișier poate fi doar un singur fișier manifest cu calea specificată:

Structura generală a Manifestului este după cum urmează:

Aceste linii indică faptul că elementele vădite au forma de „antet: valoare“ perechi. Numele antet este separat de valoarea sa de două puncte. Manifestul implicit corespunde versiunii 1.0 a caietului de sarcini manifest a fost creat versiunea 1.6.0 JDK.

Manifestul, de asemenea, poate conține informații despre alte fișiere care nu sunt ambalate într-o arhivă (biblioteci externe care sunt necesare pentru funcționarea, acest lucru va fi discutat în detaliu mai jos). Exact ce informații jar fișier trebuie să fie scris în manifest depinde de modul în care intenționați să utilizați JAR-fișier. Manifestul implicit nu face presupuneri cu privire la ce informații trebuie înregistrate cu privire la alte fișiere.

Pentru a crea un borcan-fișier cu manifestul:
borcan cfm borcan-fișier manifest-plus input-fișier (e)

Cheia «f» și «m» ambele necesită argumente, astfel încât să definim mai întâi tasta, și apoi în ordinea specifica (dacă este necesar) argumentele care lipsesc. La început am arătat argumentul «f» și apoi «m», astfel încât primul argument este numele fișierului de ieșire, iar al doilea este numele (și calea) a manifestului.

Dacă ai scris un manifest nu este una dintre opțiunile de mai sus, acestea vor fi adăugate în mod automat (care este, de asemenea, să specificați manifestul sau specificați un fișier gol, acesta este același lucru, este adesea aplicată în dezvoltarea timpurie ...). Acesta este cazul în manifest este după cum urmează:

Asta, în final borcan-fișier, acesta va fi prezentat sub formă de:

Stabilit -prin: 1.6.0 (Sun Microsystems Inc)

Dacă dezvoltați o aplicație. care vine în JAR-fișier, aveți nevoie de un mod de a indica ce clasă în JAR-fișierul este punctul de intrare al aplicației (care conține funcția principală). Tu oferi aceste informații cu antetul principal clasă în manifest, care are forma generală:

Main-Class: numele clasei

Numele de clasă Semnificația este numele clasei, care este punctul de intrare de aplicare.

După ce instalați antetul principal-Class în manifest, executați fișierul JAR utilizând următoarea comandă formular Java:

Fără a preciza clasa principală în manifest dă rulați programul, după cum urmează:

java -cp JAR-file.jar MainClass

Dacă doriți să specificați o clasă principală în manifest, nu aveți nevoie pentru a crea întregul manifest, puteți specifica parametrii necesari atunci când apelați borcanul:

jar app.jar CFE AplicațiaMea MyApp.class

Opțiunea e - sugerează un punct de intrare în program (punctul de intrare).

Va trebui să se refere la clase în alte fișiere JAR din JAR-fișier (dacă utilizați o bibliotecă terță parte în cererea dumneavoastră). Pentru a face acest lucru, trebuie să includă următoarele câmpuri în manifest:

Clasa-Path: jar1-name jar2-name director-name / jar3 nume-

Această cale este relativ la locația borcan executabil. De exemplu, NetBeans pune toate bibliotecile din dosarul lib ai pus de lângă pentru a construi cererea, și, astfel, arată drumul spre bibliotecă.

Să considerăm un exemplu final al manifestului pentru executabile bibliotecile jar-fișier, care sunt cu el în «lib» folder:

Stabilit -prin: 1.6.0 (Sun Microsystems Inc)

articole similare