Cum să rulezi un program java? Cum să rulați o aplicație java din linia de comandă

În zilele noastre nimeni nu mai creează programe în consolă. Folosind un IDE preferat, un dezvoltator se simte inconfortabil pe computerul altcuiva unde acesta nu este acolo.
După ce am decis să înțeleg munca lui Ant și Maven, mi-am dat seama că nu aș putea construi aplicația fără ele în consolă.
În acest articol, am încercat să parcurg toate etapele de proiectare a unei aplicații demo, pentru a nu căuta ajutor pentru fiecare comandă de pe Internet.

De la simplu la...

Fiecare program este de obicei conținut într-un director separat. Mă țin de regula de a crea cel puțin două foldere în acest director: src și bin. Primul conține codurile sursă, al doilea conține rezultatul compilației. Aceste foldere vor avea o structură de directoare în funcție de pachete.

Un singur dosar

O poți face fără foldere suplimentare.
Să luăm însuși fișierul HelloWorld.java. clasă publică HelloWorld ( public static void main(String args) ( System.out.println("Bună ziua!"); ) )
Mergem la directorul în care se află acest fișier și executăm comenzile.
javac HelloWorld.java Fișierul HelloWorld.class va apărea în acest folder. Aceasta înseamnă că programul a fost compilat. Pentru a începe
java-classpath. Salut Lume

Separarea fișierelor binare de surse

Acum vom face același lucru, dar cu cataloage. Să creăm un director HelloWorld și să avem două foldere src și bin în el.
Compilarea
javac -d bin src/HelloWorld.java Aici am indicat că fișierele binare vor fi salvate într-un folder bin separat și nu vor fi confundate cu sursele.

Hai să lansăm
java -classpath ./bin HelloWorld

Folosim pachete

În caz contrar, brusc, programul va înceta să mai fie doar HelloWorld. Este mai bine să acordați pachetelor un nume clar și unic. Acest lucru vă va permite să adăugați acest program la alt proiect fără un conflict de nume. După ce ați citit câteva articole, ați putea crede că un domeniu este necesar pentru un nume de pachet. Este gresit. Domeniile sunt o modalitate convenabilă de a obține unicitatea. Dacă nu aveți propriul domeniu, utilizați un cont pe site (de exemplu, ru.habrahabr.mylogin). Va fi unic. Vă rugăm să rețineți că numele pachetelor trebuie să fie scrise cu litere mici. Și evitați să folosiți caractere speciale. Problemele apar din cauza diferitelor platforme și sisteme de fișiere.

Să plasăm clasa noastră într-un pachet numit com.qwertovsky.helloworld. Pentru a face acest lucru, adăugați linia la începutul fișierului
pachet com.qwertovsky.helloworld; Să creăm directoare suplimentare în directorul src, astfel încât calea către fișier să arate astfel: src/com/qwertovsky/helloworld/HelloWorld.java.
Compilarea
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java Directorul bin va crea automat o structură de directoare similară cu src.
HelloWorld „---bin „ „---com „ „---qwertovsky „ „---helloworld „ „---HelloWorld.class „---src „---com „---qwertovsky „-- -helloworld "---HelloWorld.java
Hai să lansăm
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld

Dacă există mai multe fișiere în program

Să schimbăm programul.
HelloWorld.java
pachet com.qwertovsky.helloworld; clasă publică 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+"="+calc.sum(a,b));
Calculator.java
pachet com.qwertovsky.helloworld; import com.qwertovsky.helloworld.operation.Adder; Calculator de clasă publică ( public int sum(int... a) ( Adder adder=new Adder(); for(int i:a) ( adder.add(i); ) return adder.getSum(); ) )
Adder.java
pachet 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() (suma returnata; ))
Compilarea
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java src\com\qwertovsky\helloworld\HelloWorld.java:9: nu poate găsi simbolul simbol: clasă Locația calculatorului: clasa com.qwertovsky.helloworld.HelloWorld Calculator calc=new Calculator(); ^ src\com\qwertovsky\helloworld\HelloWorld.java:9: nu se găsește simbolul simbol: clasă Locația calculatorului: clasa com.qwertovsky.helloworld.HelloWorld Calculator calc=new Calculator(); ^2 erori
Eroarea a apărut deoarece compilarea necesită fișiere cu codurile sursă ale claselor care sunt utilizate (clasa Calculator). Trebuie să specificați directorul cu fișierele către compilator folosind comutatorul -sourcepath.
Compilarea
javac -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
Hai să lansăm
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld Hello Word 2+3=5

Dacă rezultatul surprinde

Este posibil să lansați depanatorul. Pentru asta este jdb.
În primul rând, compilăm cu comutatorul -g, astfel încât depanatorul să aibă informații.
javac -g -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java
Lansați depanatorul
jdb -classpath bin -sourcepath src com.qwertovsky.helloworld.HelloWorld Se inițializează jdb... >
Depanatorul își lansează terminalul intern pentru a introduce comenzi. Ajutorul pentru acesta din urmă poate fi afișat folosind comanda help.
Specificați un punct de întrerupere pe linia 9 din clasa Calculator
> opriți-vă la com.qwertovsky.helloworld.Calculator:9 Amânarea punctului de întrerupere com.qwertovsky.helloworld.Calculator:9. Acesta va fi setat după ce clasa este încărcată.
Să începem execuția.
> rulați rulați com.qwertovsky.helloworld.HelloWorld Setați neprins java.lang.Throwable Setați amânat neprins java.lang.Throwable > VM a pornit: Setați punctul de întrerupere amânat com.qwertovsky.helloworld.Calculator:9 Hello World! Punct de întrerupere: „thread=principal”, com.qwertovsky.helloworld.Calculator.sum(), line=9 bci=0 9 Adder adder=new Adder();
Pentru a vă orienta, puteți afișa o bucată de cod sursă unde se află în prezent cursorul.
lista principală 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 returnează sumator.getSum();
Să aflăm ce variabilă este a.
print principal a a = instanță int (id=340) dump principal a a = ( 2, 3 ) oprire principală la com.qwertovsky.helloworld.operation.Adder:19 Amânarea punctului de întrerupere com.qwertovsky.helloworld.operation.Adder:19. Acesta va fi setat după ce clasa este încărcată.
Să continuăm execuția.
main cont > Setați punctul de întrerupere amânat com.qwertovsky.helloworld.operation.Adder:19 Afișare punct de întrerupere: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=19 bci=0 19 sum+=b ; lista principală 15 ) 16 17 public void add(int b) 18 ( 19 => sum+=b; 20 ) 21 22 public int getSum() 23 ( 24 return sum; print principal sum sum = 0 main print b b = 2
Să rulăm codul în linia curentă și să vedem că suma este acum egală cu 2.
pas principal > Pas finalizat: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=20 bci=10 20 ) principal print suma suma = 2
Să trecem de la clasa Adder la clasa Calculator care a numit-o.
pas principal sus > Pas finalizat: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=10 bci=36 10 for(int i:a)
Eliminarea unui punct de întrerupere
principal clear com.qwertovsky.helloworld.operation.Adder:19 Eliminat: breakpoint com.qwertovsky.helloworld.operation.Adder:19 pas principal > Pas finalizat: "thread=main", com.qwertovsky.helloworld.Calculator.sum() , linie=12 bci=30 12 adder.add(i);
Puteți evita să intrați în metode folosind următoarea comandă.
main next > Pasul finalizat: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=10 bci=36 10 for(int i:a) main next > Pasul finalizat: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=14 bci=42 14 return adder.getSum();
Verificăm valoarea expresiei și execuția completă.
eval principal adder.getSum() adder.getSum() = 5 main cont > 2+3=5 Aplicația a ieșit

Ar fi bine de testat

Folosim JUnit.
pachet 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) clasă publică TestCalculator ( int așteptat; int arg; @Parameters public static Collection parametri() ( returnează Arrays.asList(new int(((4), (2, 2)) ,((-1),(4, -5)) ,((0),(0,0,0) ) ,((0),()) ) ) public TestCalculator(int așteptat, int arg) ( this.expected=expected; this.arg=arg; ) @Test public void testSum() ( Calculator c=new Calculator () ; assertEquals(expected,c.sum(arg));
Compilarea
mkdir test_bin javac -classpath lib/path/junit-4.8.2.jar -sourcepath ./src -d test_bin test/com/qwertovsky/helloworld/TestCalculator.java
Hai să lansăm. „;” este folosit ca separator pentru mai multe căi în classpath pe Windows și „:” pe Linux. Ambele separatoare nu funcționează în consola Cygwin. Poate că „;” ar trebui să funcționeze, dar este tratat ca un separator de comenzi.
java -classpath lib/path/junit-4.8.2.jar:./test_bin org.junit.runner.JUnitCore com.qwertovsky.helloworld.TestCalculator JUnit versiunea 4.8.2 .... Timp: 0.031 OK (4 teste)

Să creăm o bibliotecă

Clasa Calculator s-a dovedit a fi utilă și poate fi folosită în multe proiecte. Să mutăm tot ce are legătură cu clasa Calculator într-un proiect separat.
HelloWorld „---bin „---src „---com „---qwertovsky „---helloworld „---HelloWorld.java Calculator „---bin „---src „ „---com " "---qwertovsky " "---calculator " "---Calculator.java " "---operation " "---Adder.java "---test "---com "---qwertovsky" ---calculator "---TestCalculator.java
Schimbați și numele pachetelor din surse. Va trebui să adăugați linia la HelloWorld.java
import com.qwertovsky.calculator.Calculator;
Să compilam.
cd Calculator javac -sourcepath src -d bin src/com/qwertovsky/calculator/Calculator.java
Realizarea unei arhive borcane
jar cvf calculator.jar -C bin . Manifest adăugat adăugând: com/(in = 0) (out= 0)(stocat 0%) adăugând: com/qwertovsky/(in = 0) (out= 0)(stocat 0%) adăugând: com/qwertovsky/calculator/ (in = 0) (out= 0)(stocat 0%) adăugând: com/qwertovsky/calculator/Calculator.class(in = 497) (out= 373)(deflated 24%) adăugând: com/qwertovsky/calculator/operation /(in = 0) (out= 0)(stocat 0%) adăugând: com/qwertovsky/calculator/operation/Adder.class(in = 441) (out= 299)(deflated 32%)
Folosind comutatorul -C, am lansat programul în directorul bin.

Trebuie să aflăm ce se află în bibliotecă

Puteți despacheta arhiva cu un zip unpacker și puteți vedea ce clase sunt în bibliotecă.
Informații despre orice clasă pot fi obținute folosind dezasamblatorul javap.
javap -c -classpath calculator.jar com.qwertovsky.calculator.Calculator Compilat din clasa publică „Calculator.java” com.qwertovsky.calculator.Calculator extinde java.lang.Object( public com.qwertovsky.calculator.Calculator(); Cod : 0: aload_0 1: invokespecial #1 //Metoda java/lang/Object." ":()V 4: returnează public int sum(int); Cod: 0: nou #2; //class com/qwertovsky/calculator/operation/Adder 3: dup 4: invokespecial #3; //Metoda 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_icmpge 42_load 25: if_icmpge 42:load 25 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 4; : aload_2 43: invokevirtual #5 //Metoda com/qwertovsky/calculator/operation/Adder.getSum:()I 46: ireturn )
Din rezultat reiese clar că clasa conține, pe lângă un constructor gol, o altă metodă sum, în interiorul căreia metoda add a clasei Adder este apelată în buclă. Când metoda sum se finalizează, este apelat Adder.getSum().
Fără comutatorul -c, programul va produce doar o listă de variabile și metode (dacă utilizați -private, atunci toate).
javap -private -classpath calculator.jar com.qwertovsky.calculator.operation.Adder Compilat din clasa publică „Adder.java” com.qwertovsky.calculator.operation.Adder extinde java.lang.Object( private int sum; public com.qwertovsky .calculator.operation.Adder(); public com.qwertovsky.calculator.operation.Adder(int);

Este mai bine să puneți la dispoziție bibliotecă documentație

Să schimbăm clasa calculatorului pentru asta.
pachet com.qwertovsky.calculator; import com.qwertovsky.calculator.operation.Adder; /** * Un calculator care poate adăuga * @author Qwertovsky * */ public class Calculator ( /** * Determinarea sumei termenilor * @param o matrice de termeni * @return sum */ public int sum(int.. . a) ( Adder adder=new Adder(); for(int i:a) ( adder.add(i); ) return adder.getSum();
Documentația poate fi creată cu următoarea comandă. Dacă există o eroare, programul va afișa o listă de opțiuni posibile.
mkdir doc javadoc -d doc -charset utf-8 -sourcepath src -author -subpackages com.qwertovsky.calculator
Rezultatul va fi următorul

Puteți semna arhiva jar

Dacă trebuie să semnați digital biblioteca, keytool și jarsigner vor veni în ajutor.
Generarea unei semnături.
keytool -genkey -keyalg rsa -keysize 2048 -alias qwertokey -keystore path/to/qwerto.keystore Introduceți parola depozitului de chei: Reintroduceți parola nouă: Care este numele și prenumele dvs.? : Valery Qwertovsky Care este numele unității dumneavoastră organizaționale? : Qwertovsky Care este numele organizației dvs.? : Qwertovsky Care este numele orașului sau localității dvs.? : Tver Care este numele statului sau provinciei dvs.? : Tverskaya obl. Care este codul de țară din două litere pentru această unitate? : RU Este corect CN=Valery Qwertovsky, OU=Qwertovsky, O=Qwertovsky, L=Tver, ST=Tverskaya obl., C=RU? : y Introduceți parola cheie pentru (REVENIRE dacă aceeași cu parola depozitului de chei): Reintroduceți parola nouă:
Generarea cererii de semnare a certificatului (CSR)
keytool -certreq -file path/to/qwertokey.crt -alias qwertokey -keystore path/to/qwerto.keystore
Conținutul fișierului primit este trimis autorității de certificare. Primim un certificat de la autoritatea de certificare. Îl salvăm într-un fișier (de exemplu, qwertokey.cer) și îl importăm în stocare
keytool -import -trustcacerts -keystore path/to/qwert.keystore -alias qwertokey -file path/to/qwertokey.cer
Semnează arhiva borcanului
jarsigner -keystore path/to/qwerto.keystore calculator.jar qwertokey
Trimitem fișierul qwertokey.cer tuturor celor care doresc să verifice arhiva. Se verifică așa
jarsigner -verify -verbose -certs -keystore path/to/qwerto.keystore calculator.jar

Folosind biblioteca

Există un program HelloWorld care utilizează clasa de bibliotecă Calculator. Pentru a compila și rula programul, trebuie să includeți biblioteca.
Compilarea
cd HelloWorld javac -sourcepath src -d bin -classpath path/to/calculator.jar src/com/qwertovsky/helloworld/HelloWorld.java
Hai să lansăm
java -classpath bin:path/to/calculator.jar com.qwertovsky.helloworld.HelloWorld

Adunarea programului

Acest lucru se poate face în moduri diferite.

Prima cale

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 .
Există subtilități aici.
În linie
clasa principală: com.qwertovsky.helloworld.HelloWorld
nu ar trebui să existe spații la sfârșit.
A doua subtilitate este descrisă în: în aceeași linie ar trebui să existe o pauză la următoarea linie. Aceasta se întâmplă dacă manifestul este arhivat de un arhivator terță parte.
Programul jar nu va include ultima linie din manifest decât dacă există o întrerupere de linie la sfârșit.
Un alt punct: manifestul nu trebuie să aibă linii goale între rânduri. Va fi afișată eroarea „java.io.IOException: format manifest invalid”.

Când utilizați comanda echo, trebuie să urmăriți doar spațiul de la sfârșitul liniei clasei principale.

A doua cale

cd HelloWorld echo class-path: lib/calculator.jar >manifest.mf mkdir lib cp path/to/calculator.jar lib/calculator.jar jar -cmef manifest.mf com.qwertovsky.helloworld.HelloWorld helloworld.jar -C bin .
În această metodă evităm eroarea cu un spațiu în clasa principală.

A treia cale

cd HelloWorld mkdir lib cd lib jar -xvf cale/la/calculator.jar com/ creat: com/ creat: com/qwertovsky/ creat: com/qwertovsky/calculator/ umflat: com/qwertovsky/calculator/Calculator.class creat: com /qwertovsky/calculator/operation/ inflated: com/qwertovsky/calculator/operation/Adder.class cd .. cp -r bin/* lib/ jar -cef com.qwertovsky.helloworld.HelloWorld helloworld.jar -C lib . rm -r lib
Am inclus codul bibliotecii necesare în fișierul executabil.

Rularea fișierului jar executabil

Fișierul calculator.jar nu este executabil. Dar helloworld.jar poate fi lansat.
Dacă arhiva a fost creată folosind primele două metode, atunci lângă ea în același director ar trebui să existe un folder lib cu fișierul calculator.jar. Astfel de restricții se datorează faptului că calea de clasă din manifest specifică calea relativă la fișierul executabil.
cd Calculator ls ../HelloWorld/lib calculator.jar java -jar ../HelloWorld/helloworld.jar
Când utilizați a treia metodă, bibliotecile necesare sunt incluse în fișierul executabil. Nu este nevoie să păstrați bibliotecile necesare în apropiere. Începe în același mod.
java -jar ../HelloWorld/helloworld.jar

Ce să faci cu aplicațiile JavaEE

De asemenea. Doar bibliotecile pentru compilare trebuie luate de pe serverul de aplicații care este utilizat. Dacă folosesc JBoss, atunci pentru a compila servletul ar trebui să fac ceva de genul următor
javac -classpath path/to/jboss/common/lib/jboss-servlet*.jar -d ./classes src/com/qwertovsky/app/servlets/MenuSt.java
Structura de arhivă a unei aplicații JavaEE trebuie să urmeze un format specific. De exemplu
urechea mea `---META-INF | `---manifest.mf `---lib | `---mylib.jar `---my.war | `---META-INF | | `---manifest.mf | `---WEB-INF | | `---lib | | | `---myweblib.jar | | `---clase | | | `---com | | | `---... | | `---web.xml | `---index.html | `---<остальное веб-содержимое (страницы, изображения)>`---myejb.jar
Metodele de rulare a aplicației pe serverul propriu-zis folosind linia de comandă sunt diferite pentru fiecare server.

Sper că acest articol va deveni o foaie de cheat pentru ca cineva să lucreze cu Java pe linia de comandă. Aceste abilități vă vor ajuta să înțelegeți conținutul și semnificația scripturilor Ant și să răspundeți la întrebări mai complicate ale interviului decât „Care IDE vă place cel mai mult?”

Sarcină: Lansați o aplicație java din linia de comandă.

De exemplu, am creat un mic program care ar trebui să calculeze aria unui cerc pe baza unei anumite raze. Programul conține două clase: GeometryWF (principal) și Circle. Ar trebui să creeze o aplicație de consolă. Aplicația java trebuie lansată din linia de comandă.

geometrywf pachet;
clasa publică GeometryWF(
public static void main(Argumente șir) (
încerca (
dacă (args.equals ("cerc")) (
Cercul c = nou Cerc(Double.parseDouble(args));
System.out.println("Perimetrul cerc: "+c.perimetru());
System.out.println("Aria în cerc: "+c.area());
}
}
catch(ArrayIndexOutOfBoundsException e) (
System.out.println("Parametrii de intrare nevalidi!");
}
}
}

geometrywf pachet;
Cercul de clasă publică (
public dublu r = 0;
Cercul public (r dublu) (
aceasta.r = r;
}
zonă publică dublă() (
return(Math.PI*r*r);
}
perimetru public dublu() (
return(2*Math.PI*r);
}
}

În continuare, trebuie să asamblați proiectul. Pentru dezvoltare folosesc NetBeans IDE. În consecință, asamblez apăsând combinația „Shift+F11” („Ștergeți și asamblați proiectul”). La ieșire primesc un fișier jar gata
(C:\Users\Ivan\Documents\NetBeansProjects\GeometryWF\dist\GeometryWF.jar).

Rulați din linia de comandă.

Înainte de a lansa linia de comandă, faceți clic dreapta pe pictograma „Computerul meu” și deschideți „Proprietăți”. Accesați „Setări avansate de sistem” -> „Variabile de mediu”. În secțiunea „Variabile de sistem”, trebuie să creați o nouă variabilă „JAVA_HOME” cu valoarea „” (pentru mine este „C:\glassfish3\jdk\bin”). Aceeași cale trebuie introdusă în variabila Cale existentă după punct și virgulă. Salvați totul și lansați linia de comandă.

Schimbați directorul în folderul cu fișierul jar folosind comanda CHDIR:

C:\Utilizatori\Ivan> CHDIR C:\Utilizatori\Ivan\Documents\NetBeansProjects\GeometryWF\dist\

Lansăm aplicația java din linia de comandă folosind comanda „java -jar.

C:\Utilizatori\Ivan\Documents\NetBeansProjects\GeometryWF\dist> java -jar GeometryWF.jar circle 9

La ieșire obținem:

Perimetrul cercului: 56,548667764616276
Cercul pătrat: 254,46900494077323

Software-ul Java Web Start vă permite să descărcați și să rulați aplicații Java de pe Internet. Software Java Web Start:
  • Vă permite să activați aplicații cu un singur clic
  • Se asigură că utilizați cele mai recente versiuni de aplicații
  • Elimina necesitatea procedurilor complexe de instalare si upgrade

Cum să obțineți software-ul Java Web Start:

Java Web Start a fost inclus cu Java Runtime Environment (JRE) de la lansarea Java 5.0. Aceasta înseamnă că atunci când instalați Java, Java Web Start este instalat automat. Când încărcați pentru prima dată o aplicație Java care acceptă tehnologia Java Web Start, software-ul Java Web Start pornește automat. Java Web Start plasează aplicația descărcată în întregime în memoria cache locală a computerului. În acest fel, aplicația se va lansa aproape instantaneu, deoarece toate resursele necesare pentru aceasta sunt disponibile pe computerul local. De fiecare dată când lansați o aplicație, Java Web Start verifică o nouă versiune pe site și, dacă există, o descarcă și o rulează automat.

Rularea unei aplicații utilizând Java Web Start

Folosind un browser
Folosind pictograma de pe desktop

Dacă utilizați frecvent o aplicație, puteți crea o comandă rapidă pe desktop sau pe meniul Start. Java Web Start vă poate solicita să creați comenzi rapide sau intrări în meniul Start. Dacă este selectat „Da”, toate lansările ulterioare ale aplicației pot fi efectuate fără browser.

Utilizarea Java Application Cache Viewer

Java Web Start oferă, de asemenea, un aplicație cache Viewer pe care îl puteți lansa din panoul de control Java. Aplicația Cache Viewer vă permite să lansați direct aplicațiile descărcate.

Instrucțiuni pentru lansarea utilizând aplicația Cache Viewer
  1. Deschide meniul start > Setări > Panou de control> dublu clic pe pictogramă Java. Panoul de control Java va apărea pe ecran.
  2. Accesați fila General
  3. Faceți clic pe butonul VedereÎn capitolul Fișiere temporare de internet
  4. Selectați aplicația pe care doriți să o lansați din listă și faceți dublu clic pe numele acesteia
Folosind linia de comandă

Pentru a rula aplicația folosind linia de comandă, introduceți comanda javaws jnlp_url, Unde jnlp_url- URL-ul fișierului jnlp al aplicației.

Dacă browserul redă videoclipuri fără probleme, site-urile sunt pline de aplicații online și se bucură de diverse funcții convenabile - asta înseamnă că pluginul Java este activat și funcționează normal. Java este folosit de majoritatea site-urilor, așa că, dacă nu funcționează corect, trebuie să vă dați seama cum să activați suportul pentru această tehnologie.

Pentru Google Chrome: introduceți comanda „about:plugins” în bara de adrese a browserului. În lista de pluginuri, găsiți Java și verificați starea acestuia. Dacă se afișează „Activare”, faceți clic pe el. Când pluginul este activat, pe ecran apare mesajul „Dezactivare”. Pentru a evita nevoia de a confirma că Java este activat în viitor, bifați caseta de lângă „Întotdeauna permis”. Este posibil să întâlniți o situație în care Java nu este instalat deloc. Apoi puteți urmări linkul și îl puteți verifica făcând clic pe linia corespunzătoare. Dacă serviciul detectează absența unui plugin Java, vi se va solicita să îl descărcați și să îl instalați. După instalarea cu succes, în fereastra browserului va apărea o solicitare de activare a Java sau va trebui să-l activați în modul descris mai sus. Pentru Mozilla FireFox: apelați meniul browserului (dreapta sus a ecranului) și accesați secțiunea „Suplimente”. În fereastra care se deschide, accesați fila „Plugins” și găsiți programele Java (TM) Platform deja instalate în listă. Setați opțiunea de operare Java la Always Enable. Dacă Java nu se află în lista de pluginuri, trebuie mai întâi să îl instalați folosind link-ul. Pentru Opera: deoarece acest browser are deja componente Java încorporate, este activat simultan cu toate pluginurile. Pentru a face acest lucru, în meniul „Setări”, găsiți fila „Site-uri web”, apoi activați elementul „Lansare automat” din secțiunea „Plugin-uri”. Pentru Internet Explorer: în elementul de meniu al browserului, care poate fi deschis făcând clic pe pictograma roată din colțul din dreapta sus al ecranului sau pe tastele Alt+X, selectați „Opțiuni Internet”. Apoi găsiți fila „Securitate” și faceți clic pe butonul „Altele”. Va apărea o listă impresionantă de parametri, printre care trebuie să găsiți elementul „Run Java application script” și să îl activați. Pentru browserul Yandex: activarea Java se realizează aproape identic cu acest proces în Chrome. Scrieți „browser://plugins” în bara de adrese și apăsați „Enter”. Se va deschide o fereastră cu o listă de pluginuri instalate. Dacă pluginul Java este dezactivat, comanda Enable va fi activă, iar fontul va fi ușor. După activare, bifați caseta de lângă „Permite întotdeauna” și închideți fereastra de setări.

Acum știți nu numai cum să activați suportul Java în browser. Dacă apar probleme cu alte plugin-uri, algoritmul acțiunilor va fi același. Vă rugăm să rețineți că Java și JavaScript nu sunt același lucru, iar suportul pentru acesta din urmă este activat într-un mod complet diferit.

Mulți programatori începători se confruntă cu următoarea întrebare: „Mi-am creat aplicația în IDE, cum pot să o fac acum să funcționeze din linia de comandă în afara IDE?” O altă întrebare care ar putea apărea este: „Cum pot distribui această aplicație altor utilizatori fără a le oferi întregul IDE?”

Răspunsurile la aceste întrebări sunt relativ simple, dar nu întotdeauna evidente. Acest document răspunde la aceste întrebări demonstrând elementele de bază ale utilizării IDE-ului pentru a pregăti aplicațiile pentru distribuție și implementare. Acest document oferă, de asemenea, informații de care programatorul ar putea avea nevoie pentru a configura sistemul (sau care ar putea avea nevoie să fie comunicate utilizatorilor aplicației). Vom arăta mai multe abordări diferite pentru implementarea unei aplicații, permițând utilizatorilor să o acceseze prin:

  • Faceți dublu clic pe fișierul Java Archive (JAR) al aplicației.
  • Apelarea aplicației din linia de comandă.
  • Apelarea unei aplicații dintr-un fișier script.
  • Utilizarea Java Web Start.

Acest curs de formare necesită software-ul și materialele enumerate în tabelul de mai jos.

Crearea unui fișier JAR executabil

Această parte a tutorialului arată cum puteți crea o aplicație de distribuție în IDE și apoi rulați acea aplicație în afara IDE. Ambalăm această aplicație într-un fișier JAR executabil.

Un fișier JAR este un fișier de arhivă care poate conține fișiere și foldere. Fișierele JAR sunt similare cu fișierele ZIP, dar fișierele JAR pot avea atribute suplimentare care sunt utile la distribuirea aplicațiilor Java. Aceste atribute includ semnătura digitală a fișierelor JAR, compresie suplimentară, compatibilitate între platforme etc.

În acest exercițiu, creăm un proiect IDE și apoi plasăm două fișiere de cod sursă Java pre-scrise în proiect. Apoi vom compila clasele și vom crea un fișier JAR executabil. După aceea, ne vom uita la cum să rulăm fișierele JAR în afara IDE-ului.

Clasele utilizate în acest tutorial implementează funcții ale utilitarului GNU grep, care pot fi folosite pentru a căuta text sau modele de expresii regulate în fișierele text. Acest proiect conține atât o versiune de linie de comandă a aplicației, cât și o versiune GUI, care vă va oferi o privire asupra diferitelor moduri de a rula aplicația.

Creați un proiect folosind fișierele de cod sursă existente

  1. Distribuirea aplicației altor utilizatori

    Acum că ați confirmat că aplicația dvs. rulează în afara IDE-ului, puteți trece la distribuirea acesteia.

    Notă. Dacă aplicația dvs. depinde de biblioteci suplimentare, altele decât cele incluse în JDK, trebuie să le includeți în distribuție (nu se aplică acestui exemplu). Căile relative către aceste biblioteci sunt adăugate la intrarea classpath a fișierului manifest JAR atunci când se dezvoltă aplicația în IDE. Dacă aceste biblioteci suplimentare nu sunt găsite la calea de clasă specificată (adică calea relativă) când sunt lansate, aplicația nu va porni.
    Creați o arhivă ZIP care conține fișierul JAR și biblioteca, apoi trimiteți fișierul ZIP utilizatorilor. Instruiți utilizatorii să extragă această arhivă ZIP, astfel încât fișierul JAR și fișierele JAR din bibliotecă să fie în același folder. Lansați fișierul JAR al aplicației.

    Rularea unei aplicații Java

    Scopul acestui exercițiu este de a demonstra câteva dintre modalitățile de a rula o aplicație din linia de comandă.

    Acest exercițiu arată cum puteți porni o aplicație Java în următoarele două moduri:

    • Executarea comenzii java din linia de comandă.
    • Utilizarea unui script pentru a apela o clasă într-un fișier JAR.

    Rularea aplicațiilor din linia de comandă

    Aplicația poate fi lansată din linia de comandă folosind comanda java. Dacă trebuie să executați un fișier JAR executabil, utilizați opțiunea -jar a comenzii.

    De exemplu, pentru a lansa aplicația AnotherGrep, trebuie să faceți următoarele:

    1. Deschide o fereastră de terminal. Pe sistemele Microsoft Windows, acest lucru se face făcând clic pe butonul Start și selectând Executare..., tastând cmd în caseta Deschidere: și făcând clic pe OK.
    2. Accesați directorul PROJECT_HOME/dist (folosind comanda cd).
    3. Introduceți următoarea linie pentru a porni clasa principală de aplicație: java -jar AnotherGrep.jar

    Dacă urmați aceste instrucțiuni și aplicația nu pornește, probabil ar trebui să faceți una dintre următoarele:

    Rularea aplicațiilor dintr-un script

    Dacă aplicația pe care doriți să o distribuiți este o aplicație de consolă, s-ar putea să vi se pare mai convenabil să o rulați dintr-un script, mai ales dacă aplicația necesită argumente lungi și complexe pentru a rula. În această secțiune, folosim versiunea de consolă a Grep, unde trebuie să transmitem argumente (modelul de căutare și lista de fișiere) fișierului JAR numit în scriptul nostru. Pentru a reduce cantitatea de tastare în linia de comandă, folosim un script simplu potrivit pentru rularea unei aplicații de testare.

    În primul rând, trebuie să schimbați clasa principală din aplicație în versiunea de consolă a clasei și să construiți din nou fișierul JAR:

    1. În fereastra Proiecte din IDE, faceți clic dreapta pe nodul proiectului (AnotherGrep) și selectați Proprietăți.
    2. Selectați nodul Run și modificați proprietatea Main Class la anothergrep.Grep (din anothergrep.xGrep). Faceți clic pe OK pentru a închide fereastra Proprietăți proiect.
    3. Faceți clic dreapta pe nodul de proiect din nou și selectați Curăță și construiți proiect.

    Odată ce acești pași sunt finalizați, fișierul JAR va fi reconstruit, iar atributul Main-Class din manifestul fișierului JAR va indica anothergrep.Grep .

    Script Bash - pentru computere UNIX și Linux

    În folderul în care a fost extras conținutul fișierului, puteți găsi un script bash numit grep.sh. Să aruncăm o privire la el:

    #!/bin/bash java -jar dist/AnotherGrep.jar $@

    Prima linie specifică ce interpret de comandă trebuie utilizat pentru a interpreta acest script. Al doilea execută fișierul JAR creat de IDE în folder PROJECT_HOME/dist. $@ copiază pur și simplu toate argumentele transmise scriptului, încadrându-le pe fiecare între ghilimele.

    Acest script presupune că binarele Java fac parte din variabila de mediu PATH. Dacă acest script nu funcționează pe computerul dvs., consultați.

    Pentru mai multe informații despre scrierea de scripturi pentru interpretul bash, consultați .

    Script.bat pentru computere Windows

    Pe computerele Microsoft Windows, fișierelor batch pot fi transmise maximum nouă argumente simultan. Dacă există mai mult de nouă argumente, fișierul JAR va trebui să fie executat de mai multe ori.

    Scriptul pentru aceasta ar putea arăta astfel:

    @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% pentru %%i în (0 1 2 3 4 5 6 7 8) do shift goto:loop:allprocessed

    Acest script poate fi găsit sub numele grep.bat în folderul de unde a fost extras conținutul arhivei dacă doriți să o vedeți în acțiune.

    Cele nouă argumente sunt reprezentate în fișierul batch ca % , Unde trebuie să aibă o valoare în interior<0-9>. %0 este rezervat pentru numele scriptului.

    Puteți vedea că doar nouă argumente sunt transmise programului la un moment dat (într-o buclă). Instrucțiunea for pur și simplu schimbă argumentele cu nouă pentru a le pregăti pentru următoarea buclă. Bucla se termină când instrucțiunea if întâlnește un argument de fișier gol (aceasta indică că nu există fișiere noi de procesat).

    Mai multe informații despre scripturile batch pot fi găsite la .

    Împachetarea unei aplicații pentru Java Web Start

    Java Web Start este o tehnologie folosită pentru a lansa aplicații Java dintr-un browser web cu un singur clic. Pentru detalii despre ambalarea aplicațiilor pentru implementare folosind Java Web Start, consultați Activarea Java Web Start în NetBeans IDE. Aici oferim doar o scurtă descriere a pașilor necesari pentru a face o aplicație implementabilă folosind Java Web Start.

    1. Faceți clic dreapta pe nodul proiectului din fereastra Proiecte și selectați Proprietăți.
    2. În fila Web Start din fereastra Project Properties, bifați caseta de validare Enable Web Start.
    3. Selectați Execuție locală din lista derulantă Codebase, deoarece vom testa doar execuția locală.
      Păstrați toate celelalte setări ca implicite și faceți clic pe OK.
    4. Faceți clic dreapta pe nodul proiectului și selectați Curăță și construiți proiect.
      Această comandă IDE va ​​elimina toate fișierele compilate anterior și va genera rezultate, va recompila aplicația și va construi proiectul cu noile setări.
    5. În afara IDE-ului, deschideți folderul PROJECT_HOME/dist și apoi deschideți fișierul launch.html în browser.
      Apare o pagină HTML de test cu un buton Lansare.
    6. Faceți clic pe butonul Lansare pentru a deschide aplicația.
      Veți vedea că Java este încărcat și aplicația rulează.

      Notă. Unele browsere redirecționează mai întâi utilizatorii către pagina de descărcări Java.

    Specificarea asocierilor de fișiere JAR

    Pe majoritatea computerelor, un fișier JAR executabil poate fi executat făcând dublu clic pe el. Dacă nu se întâmplă nimic când faceți dublu clic pe un fișier JAR, aceasta ar putea fi din cauza unuia dintre următoarele două motive:

    • Tipul de fișier JAR nu este asociat cu Java Runtime Environment (JRE) de pe acest computer.

      Dacă tipul de fișier JAR este mapat la JRE, pictograma care reprezintă acel fișier trebuie să includă sigla Java.

    • Tipul de fișier JAR este mapat la JRE, dar parametrul -jar nu face parte din comanda transmisă JRE atunci când faceți dublu clic pe pictogramă.

    Notă. Uneori, asociațiile de fișiere JAR sunt schimbate de software-ul instalat, cum ar fi software-ul de procesare a fișierelor zip.

    Modul în care tipul de fișier JAR poate fi legat de lansatorul java depinde de sistemul de operare.

    Asigurați-vă că aveți una dintre versiunile JRE instalată pe computer. Trebuie utilizată versiunea 1.4.2 sau o versiune ulterioară. Aplicațiile Java nu pot fi rulate pe computere care nu au instalată platforma Java. (Dacă instalați Java Development Kit (JDK), JRE este instalat împreună cu acesta. Cu toate acestea, dacă programul este distribuit altor persoane decât programatori, este posibil ca utilizatorii să nu aibă un JRE sau JDK.)

    • Pe Windows XP, puteți verifica versiunea instalată de Java selectând Start > Panou de control > (Adăugați sau eliminați programe) (de exemplu, Java(TM) 6 Update 33 ar trebui să fie listată acolo).
    • Pe Windows Vista sau 7, puteți verifica versiunea instalată de Java selectând Start > Panou de control > (Programe și caracteristici) (de exemplu, Java(TM) 6 Update 33 ar trebui să fie listată acolo).

    Dacă computerul dumneavoastră nu are platforma Java, JRE poate fi descărcat de pe site-ul de descărcare Java SE.

    Dacă îl aveți deja pe computer, dar asocierea fișierelor nu funcționează, urmați acești pași pentru a adăuga o asociere de fișiere JAR în Microsoft Windows:

    1. Selectați Start > Panou de control.
    2. (Aplicabil numai pentru Windows Vista). Faceți clic pe Panou de control > Programe.

    3. Pentru Windows Vista sau 7, faceți clic pe „Programe implicite” și selectați „Asociați un tip de fișier sau un protocol cu ​​un program”.
    4. (În Windows XP, în secțiunea Detalii a casetei de dialog, faceți clic pe Modificare program.)
    5. În caseta de dialog Selectați un program, selectați Java Platform SE Binary.
    6. Faceți clic pe OK pentru a ieși din caseta de dialog Select Program.
    7. Faceți clic pe Închidere pentru a închide caseta de dialog Opțiuni folder (în Windows XP) sau caseta de dialog pentru asocierea unui tip de fișier sau protocol cu ​​anumite programe (în Windows 7).

    Notă. Dacă fișierele JAR sunt asociate cu Java Platform SE Binary pe sistem, dar dublu clic tot nu lansează fișierul JAR, poate fi necesar să specificați parametrul -jar în asocierea fișierului.

    Pentru a specifica opțiunea -jar într-o asociere de fișiere pe Microsoft Windows XP, urmați acești pași:

    1. Selectați Start > Panou de control.
    2. În Windows XP, faceți dublu clic pe Opțiuni folder și selectați fila Tipuri de fișiere.
    3. Din lista Tipuri de fișiere înregistrate, selectați fișierul JAR.
    4. În secțiunea Detalii a casetei de dialog, faceți clic pe Avansat.
    5. În caseta de dialog Editare proprietăți tip fișier, faceți clic pe Editare....
    6. În caseta de text „Aplicația care rulează acțiunea”, adăugați următoarea linie la sfârșitul căii JRE: -jar „%1” %* Câmpul ar trebui să conțină text similar cu următorul: „C:\Program Files\Java \jre1.6.0_33\ bin\javaw.exe" -jar "%1" %*
    7. Faceți clic pe OK pentru a ieși din caseta de dialog Edit Type Action.
    8. Faceți clic pe OK pentru a ieși din caseta de dialog Modificare proprietăți tip fișier.
    9. Faceți clic pe Închidere pentru a ieși din caseta de dialog Opțiuni folder.

    Notă.Începând cu Windows Vista, asocierile extinse de fișiere pot fi configurate folosind RegEdit. Pentru mai multe informații, consultați Ce sa întâmplat cu caseta de dialog Tipuri de fișiere? .

    Pentru sistemele UNIX și Linux, procedura de modificare a asociațiilor de fișiere depinde de mediul desktop (cum ar fi GNOME sau KDE) pe care îl utilizați. Examinați setările mediului de lucru sau examinați documentația mediului de lucru.

    Setarea variabilei de mediu PATH

    Dacă computerul dvs. nu poate rula o clasă Java sau un fișier JAR fără a indica locația JDK sau JRE, poate fi necesar să modificați valoarea variabilei de mediu PATH de sistem.

    Când rulați pe Microsoft Windows, procedura de setare a variabilei PATH depinde de versiunea de Windows pe care o utilizați.

    Următorii sunt pașii pentru a seta variabila PATH pe sistemul Windows XP:

    1. Alegeți Start > Panou de control și faceți dublu clic pe Sistem.
    2. În caseta de dialog Proprietăți sistem, selectați fila Avansat.
    3. Faceți clic pe fila Variabile de mediu.
    4. În lista de variabile de mediu utilizator, selectați PATH și faceți clic pe butonul Editare.
    5. Adăugați locația JRE la sfârșitul listei de căi. Locațiile din listă sunt separate prin punct și virgulă (;).
      De exemplu, dacă JRE se află în C:\Program Files\Java\jdk1.6.0_23, ați adăuga următoarele la sfârșitul variabilei PATH: C:\Program Files\Java\jdk1.6.0_23\bin
    6. Faceți clic pe OK pentru a ieși din caseta de dialog Variabile de mediu, apoi faceți clic pe OK pentru a ieși din caseta de dialog Proprietăți sistem.

    Când rulați pe un sistem de operare UNIX sau Linux, modul în care modificați variabila de mediu PATH depinde de programul de interpretare a comenzilor pe care îl utilizați. Consultați documentația interpretorului de comenzi pentru mai multe informații.

    Ce urmeaza?

    Pentru mai multe informații despre lucrul cu IDE-ul NetBeans, consultați site-ul web NetBeans.

    Mai multe informații despre dezvoltarea aplicațiilor Java într-un IDE, inclusiv gestionarea căii de clasă, sunt disponibile în document