Kā palaist jar failu operētājsistēmā Windows 10. Darbs ar Java komandrindā

Pretdrudža līdzekļus bērniem izraksta pediatrs. Bet ir ārkārtas situācijas saistībā ar drudzi, kad bērnam nekavējoties jādod zāles. Tad vecāki uzņemas atbildību un lieto pretdrudža zāles. Ko atļauts dot zīdaiņiem? Kā pazemināt temperatūru vecākiem bērniem? Kādas zāles ir visdrošākās?

Daudzi iesācēju programmētāji saskaras ar šādu jautājumu: "Es izveidoju savu lietojumprogrammu IDE, tagad kā panākt, lai tā darbotos no komandrindas ārpus IDE?". Vēl viens jautājums, kas varētu rasties, ir: "Kā es varu izplatīt šo lietojumprogrammu citiem lietotājiem, vienlaikus nedodot viņiem visu IDE?".

Atbildes uz šiem jautājumiem ir samērā vienkāršas, taču ne vienmēr acīmredzamas. AT šo dokumentu atbild uz tiem, demonstrējot IDE lietošanas pamatus, lai sagatavotu lietojumprogrammas izplatīšanai un izvietošanai. Turklāt šajā dokumentā ir sniegta informācija, kas var būt nepieciešama programmētāja sistēmas iestatīšanai (vai arī par to būs jāpaziņo lietojumprogrammas lietotājiem). Mēs parādīsim vairākas dažādas pieejas lietojumprogrammas izvietošanai, ļaujot lietotājiem tai piekļūt, izmantojot:

  • Veiciet dubultklikšķi uz lietojumprogrammas Java arhīva (JAR) faila.
  • Lietojumprogrammas izsaukšana no komandrindas.
  • Lietojumprogrammas izsaukšana no skripta faila.
  • Java Web Start izmantošana.

Šai apmācībai ir nepieciešama programmatūra un materiāli, kas norādīti tālāk esošajā tabulā.

Izpildāmā JAR faila izveide

Šajā apmācības daļā ir parādīts, kā varat izveidot pārdalāmu lietojumprogrammu IDE un pēc tam palaist lietojumprogrammu ārpus IDE. Mēs iesaiņojam šo lietojumprogrammu izpildāmā JAR failā.

JAR fails ir arhīva fails, kurā var būt faili un mapes. JAR faili ir līdzīgi ZIP failiem, taču JAR failiem var būt papildu atribūti, kas ir noderīgi, izplatot Java lietojumprogrammas. Šie atribūti ietver JAR failu ciparparakstu, neobligātu saspiešanu, vairāku platformu saderību un tā tālāk.

Šajā uzdevumā mēs izveidojam IDE projektu un pēc tam projektā ievietojam divus iepriekš uzrakstītus Java avota failus. Pēc tam mēs apkoposim klases un izveidosim izpildāmu JAR failu. Pēc tam mēs redzēsim, kā palaist JAR failus ārpus IDE.

Šajā apmācībā izmantotās klases īsteno GNU grep utilīta funkcijas, ko var izmantot teksta vai regulāro izteiksmju modeļu meklēšanai teksta failos. Šajā projektā ir gan lietojumprogrammas komandrindas versija, gan versija, kas izmanto GUI, kas sniegs ieskatu dažādos lietojumprogrammas palaišanas veidos.

Projekta izveide, izmantojot esošos pirmkoda failus

  1. Lietojumprogrammas izplatīšana citiem lietotājiem

    Tagad, kad esat apstiprinājis, ka jūsu lietojumprogramma darbojas ārpus IDE, varat pāriet uz tās izplatīšanu.

    Piezīme. Ja jūsu lietojumprogramma ir atkarīga no papildu bibliotēkām, kas nav iekļautas JDK, tās ir jāiekļauj savā izplatīšanā (neattiecas uz šo piemēru). Relatīvie ceļi uz šīm bibliotēkām tiek pievienoti JAR manifesta faila klases ceļa ierakstam, kad lietojumprogramma ir izstrādāta IDE. Ja šīs papildu bibliotēkas startēšanas laikā netiek atrastas norādītajā klases ceļā (t.i., relatīvajā ceļā), lietojumprogramma netiks startēta.
    Izveidot ZIP arhīvs kurā ir JAR fails un bibliotēka, un pēc tam augšupielādējiet to ZIP fails lietotājiem. Norādiet lietotājiem izpakot šo ZIP arhīvu, lai JAR fails un bibliotēkas JAR faili atrastos vienā mapē. Palaidiet lietojumprogrammas jar failu.

    Java lietojumprogrammas palaišana

    Šī uzdevuma mērķis ir parādīt dažus veidus, kā palaist lietojumprogrammu no komandrindas.

    Šis vingrinājums parāda, kā jūs varat startēt Java lietojumprogrammu divos tālāk norādītajos veidos.

    • Java komandas palaišana no komandrindas.
    • Skripta izmantošana, lai izsauktu klasi JAR failā.

    Lietojumprogrammu palaišana no komandrindas

    Lietojumprogrammu var palaist no komandrindas, izmantojot java komandu. Ja vēlaties izpildīt izpildāmu JAR failu, izmantojiet komandas opciju -jar.

    Piemēram, lai palaistu lietojumprogrammu AnotherGrep, rīkojieties šādi:

    1. Atveriet termināļa logu. Microsoft Windows sistēmās tas tiek darīts, noklikšķinot uz pogas "Start" un atlasot "Run...", ierakstot cmd laukā "Open:" un noklikšķinot uz pogas "OK".
    2. Dodieties uz direktoriju PROJECT_HOME/dist (izmantojot komandu cd).
    3. Ievadiet šo rindiņu, lai palaistu galveno lietojumprogrammas klasi: java -jar AnotherGrep.jar

    Ja izpildāt šos norādījumus un lietojumprogramma netiek startēta, iespējams, rīkojieties šādi:

    Lietojumprogrammu palaišana no skripta

    Ja lietojumprogramma, kuru vēlaties izplatīt, ir konsoles lietojumprogramma, jums var būt ērtāk to palaist no skripta, it īpaši, ja lietojumprogrammas palaišanai ir nepieciešami gari un sarežģīti argumenti. Šajā sadaļā mēs izmantojam Grep konsoles versiju, kurā mums ir jānodod argumenti (meklēšanas modelis un failu saraksts) JAR failam, kas tiek izsaukts mūsu skriptā. Lai samazinātu rakstīšanas skaitu komandrindā, mēs izmantojam vienkāršu skriptu, kas piemērots testa lietojumprogrammas palaišanai.

    Pirmais solis ir mainīt lietojumprogrammas galveno klasi uz klases konsoles versiju un pārbūvēt JAR failu:

    1. IDE logā Projects ar peles labo pogu noklikšķiniet uz projekta mezgla (AnotherGrep) un atlasiet Properties.
    2. Atlasiet Run mezglu un mainiet rekvizītu Galvenā klase uz othergrep.Grep (no othergrep.xGrep). Noklikšķiniet uz pogas Labi, lai aizvērtu logu Project Properties.
    3. Ar peles labo pogu noklikšķiniet vēlreiz uz projekta mezgla un atlasiet Clean and Build Project.

    Kad šīs darbības būs pabeigtas, JAR fails tiks pārbūvēts un galvenās klases atribūts JAR faila manifestā norādīs uz othergrep.Grep .

    bash skripts - datoriem, kuros darbojas UNIX un Linux

    Mapē, kurā tika izvilkts faila saturs, varat atrast bash skriptu ar nosaukumu grep.sh . Apskatīsim to:

    #!/bin/bash java -jar dist/AnotherGrep.jar [aizsargāts ar e-pastu]

    Pirmajā rindā ir norādīts, kuru komandu tulku izmantot šī skripta interpretācijai. Otrais izpilda JAR failu, ko mapē izveidojis IDE PROJECT_HOME/dist . [aizsargāts ar e-pastu] vienkārši kopē visus skriptam nodotos argumentus, katru ievietojot pēdiņās.

    Šis skripts pieņem, ka Java binārie faili ir daļa no PATH vides mainīgā. Ja šis skripts nedarbojas jūsu datorā, skatiet .

    Papildinformāciju par bash tulka skriptēšanu skatiet .

    .bat skripts Windows datoriem

    Microsoft Windows datoros pakešfailiem vienlaikus var nodot ne vairāk kā deviņus argumentus. Ja ir vairāk nekā deviņi argumenti, JAR fails būs jāizpilda vairākas reizes.

    Skripts tam varētu izskatīties šādi:

    @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% %faili% priekš %%i in (0 1 2 3 4 5 6 7 8) do shift goto:loop:allprocessed

    Šo skriptu var atrast ar nosaukumu grep.bat mapē, kurā tika izvilkts arhīva saturs, ja vēlaties to redzēt darbībā.

    Deviņi argumenti tiek nodrošināti pakešfailā kā % , kur ir jābūt vērtībai<0-9>. %0 ir rezervēts skripta nosaukumam.

    Var redzēt, ka programmai vienlaikus tiek nodoti tikai deviņi argumenti (vienā cilpā). Paziņojums for vienkārši pārbīda argumentus par deviņiem, lai sagatavotu tos nākamajai cilpai. Cilpa beidzas, kad priekšraksts if tiek atrasts tukšs faila arguments (tas norāda, ka nav jaunu failu, ko apstrādāt).

    Plašāku informāciju par pakešu skriptēšanu var atrast vietnē .

    Lietojumprogrammas iepakošana programmai Java Web Start

    Java Web Start ir tehnoloģija, ko izmanto Java lietojumprogrammu palaišanai no tīmekļa pārlūkprogrammas ar vienu klikšķi. Plašāku informāciju par lietojumprogrammu iesaiņošanu izvietošanai ar Java Web Start skatiet sadaļā Java Web Start iespējošana NetBeans IDE. Šeit mēs sniedzam tikai īsu aprakstu par darbībām, kas nepieciešamas, lai lietojumprogrammu padarītu izvietojamu, izmantojot Java Web Start.

    1. Ar peles labo pogu noklikšķiniet uz projekta mezgla logā Projects un atlasiet Properties.
    2. Projekta rekvizītu loga cilnē Web Start atzīmējiet izvēles rūtiņu Enable Web Start.
    3. Codebase nolaižamajā izvēlnē atlasiet Vietējā izpilde, jo mēs pārbaudīsim tikai vietējo izpildi.
      Saglabājiet visus pārējos noklusējuma iestatījumus un noklikšķiniet uz Labi.
    4. Ar peles labo pogu noklikšķiniet uz projekta mezgla un atlasiet Clean and Build Project.
      Šī IDE komanda noņems visus iepriekš apkopotos failus un būvējumus, pārkompilē lietojumprogrammu un izveidos projektu ar jaunajiem iestatījumiem.
    5. Ārpus IDE atveriet mapi PROJECT_HOME/dist , pēc tam pārlūkprogrammā atveriet failu launch.html.
      Parādīsies tests. HTML lapa ar pogu Palaist.
    6. Nospiediet pogu Palaist, lai atvērtu lietotni.
      Jūs varēsiet redzēt, ka Java ir ielādēta un programma darbojas.

      Piezīme. Dažas pārlūkprogrammas vispirms novirza lietotājus uz Java lejupielādes lapu.

    JAR failu asociāciju norādīšana

    Lielākajā daļā datoru izpildāmu JAR failu var izpildīt, vienkārši veicot dubultklikšķi uz tā. Ja, veicot dubultklikšķi uz JAR faila, nekas nenotiek, tas var būt saistīts ar vienu no šiem diviem iemesliem:

    • JAR faila tips nav saistīts ar Java Runtime Environment (JRE) šajā datorā.

      Ja JAR faila tips ir saistīts ar JRE, ikonā, kas attēlo šo failu, ir jāiekļauj Java logotips.

    • JAR faila tips ir piesaistīts JRE, bet opcija -jar nav daļa no komandas, kas tiek nodota JRE, veicot dubultklikšķi uz ikonas.

    Piezīme. Dažreiz JAR failu asociācijas pārslēdz instalētā programmatūra, piemēram, programmatūra lai apstrādātu zip failus.

    Veids, kādā JAR faila tipu var saistīt ar Java palaidēju, ir atkarīgs no operētājsistēmas.

    Pārliecinieties, vai datorā ir instalēta kāda no JRE versijām. Jāizmanto 1.4.2 vai jaunāka versija. Java programmas nevar palaist datoros, kuros nav instalēta Java platforma. (Ja ir instalēts Java izstrādes komplekts (JDK), kopā ar to tiek instalēts arī JRE. Tomēr, ja programma tiek izplatīta neprogrammētājiem, lietotājiem var nebūt JRE vai JDK.)

    • Instalētajā operētājsistēmā Windows XP Java versija var pārbaudīt, izvēloties "Sākt" > "Vadības panelis" > ("Pievienot vai noņemt programmas") (jābūt, piemēram, Java (TM) 6 atjauninājumam 33).
    • Uz Windows Vista vai 7 instalēto Java versiju var pārbaudīt, izvēloties "Sākt" > "Vadības panelis" > ("Programmas un līdzekļi") (jānorāda, piemēram, Java (TM) 6 atjauninājums 33).

    Ja jūsu datoram nav Java platformas, JRE var lejupielādēt no Java SE lejupielādes vietnes.

    Ja tas jau ir jūsu datorā, bet failu saistīšana nedarbojas, veiciet darbības, lai pievienotu JAR failu saiti operētājsistēmā Microsoft Windows:

    1. Izvēlieties "Sākt" > "Vadības panelis".
    2. (Attiecas tikai uz Windows Vista). Noklikšķiniet uz "Vadības panelis" > "Programmas".

    3. Operētājsistēmā Windows Vista vai 7 noklikšķiniet uz Noklusējuma programmas un atlasiet Saistīt faila tipu vai protokolu ar programmu.
    4. (Sistēmā Windows XP dialoglodziņa sadaļā Detaļas noklikšķiniet uz Mainīt programmu.)
    5. Dialoglodziņā Programmas atlase atlasiet Java Platform SE Binary.
    6. Noklikšķiniet uz pogas "OK", lai izietu no dialoglodziņa "Atlasīt programmu".
    7. Noklikšķiniet uz pogas Aizvērt, lai aizvērtu dialoglodziņu Folder Options (operētājsistēmā Windows XP) vai dialoglodziņu faila tipa vai protokola saistīšanai ar noteiktām programmām (operētājsistēmā Windows 7).

    Piezīme. Ja JAR faili sistēmā ir saistīti ar Java Platform SE Binary, bet, veicot dubultklikšķi, joprojām netiek palaists JAR fails, iespējams, faila saistījumā būs jānorāda opcija -jar.

    Lai norādītu opciju -jar failu saistījumā operētājsistēmā Microsoft Windows XP, veiciet šīs darbības:

    1. Izvēlieties "Sākt" > "Vadības panelis".
    2. Operētājsistēmā Windows XP veiciet dubultklikšķi uz "Mapes opcijas" un atlasiet cilni "Failu veidi".
    3. Sarakstā Reģistrētie failu tipi atlasiet JAR failu.
    4. Dialoglodziņa sadaļā Detaļas noklikšķiniet uz Papildu.
    5. Dialoglodziņā Faila tipa rekvizītu rediģēšana noklikšķiniet uz Rediģēt....
    6. Tekstlodziņā "Lietojumprogramma, kas izpilda darbību" JRE ceļa beigās pievienojiet šādu rindiņu: -jar "%1" %* Pēc tam lodziņā ir jābūt tekstam, kas līdzīgs šim: "C:\Program Faili\Java\jre1.6.0_33\ bin\javaw.exe" -jar "%1" %*
    7. Noklikšķiniet uz Labi, lai izietu no dialoglodziņa Mainīt tipa darbību.
    8. Noklikšķiniet uz Labi, lai izietu no dialoglodziņa Rediģēt faila tipa rekvizītus.
    9. Noklikšķiniet uz pogas Aizvērt, lai aizvērtu dialoglodziņu Folder Options.

    Piezīme. Sākot ar Windows Vista, paplašinātas failu asociācijas var konfigurēt, izmantojot RegEdit. Papildinformāciju skatiet sadaļā Kas notika ar failu tipu dialoglodziņu? .

    UNIX un Linux sistēmām failu asociāciju maiņas procedūra ir atkarīga no tā, kura darbvirsmas vide (piemēram, GNOME vai KDE) tiek izmantota. Apskatiet savas darbvietas iestatījumus vai izlasiet darbvietas dokumentāciju.

    Vides mainīgā PATH iestatīšana

    Ja jūsu dators nevar palaist Java klases vai JAR failu, nenorādot JDK vai JRE atrašanās vietu, iespējams, būs jāmaina sistēmas PATH vides mainīgā vērtība.

    Darbojoties Microsoft Windows sistēmā, mainīgā PATH iestatīšanas procedūra ir atkarīga no izmantotās Windows versijas.

    Tālāk ir norādītas darbības, lai iestatītu mainīgo PATH uz Windows sistēma XP:

    1. Atlasiet "Sākt" > "Vadības panelis" un veiciet dubultklikšķi uz "Sistēma".
    2. Dialoglodziņā Sistēmas rekvizīti atlasiet cilni Papildu.
    3. Noklikšķiniet uz cilnes Vides mainīgie.
    4. Lietotāja vides mainīgo sarakstā atlasiet PATH un noklikšķiniet uz pogas Rediģēt.
    5. Pievienojiet JRE atrašanās vietu ceļu saraksta beigām. Atrašanās vietas sarakstā ir atdalītas ar semikolu (;).
      Piemēram, ja JRE atrodas mapē C:\Program Files\Java\jdk1.6.0_23, tad PATH mainīgā beigās pievienojiet šo: C:\Program Files\Java\jdk1.6.0_23\bin.
    6. Noklikšķiniet uz Labi, lai aizvērtu dialoglodziņu Vides mainīgie, pēc tam noklikšķiniet uz Labi, lai izietu no dialoglodziņa System Properties.

    Strādājot iekšā operētājsistēma UNIX vai Linux, veids, kā mainīt PATH vides mainīgo, ir atkarīgs no izmantotās komandu tulka programmas. Papildinformāciju skatiet komandu tulka dokumentācijā.

    Ko tālāk?

    Lai iegūtu papildinformāciju par darbu ar NetBeans IDE, skatiet NetBeans vietni.

    Plašāka informācija par Java lietojumprogrammu izstrādi IDE, tostarp klases ceļa pārvaldību, ir pieejama dokumentā

Tagad neviens programmas konsolē neveido. Izmantojot jūsu iecienītāko IDE, izstrādātājs jūtas neērti pie kāda cita datora, kur tā nav.
Nolēmis izprast Ant un Maven darbu, es atklāju, ka nevaru izveidot lietojumprogrammu bez tiem konsolē.
Šajā rakstā es mēģināju pielāgot visus demonstrācijas lietojumprogrammas izstrādes posmus, lai nemeklētu palīdzību par katru komandu internetā.

No vienkāršas līdz...

Katra programma parasti atrodas atsevišķā direktorijā. Mans noteikums ir izveidot vismaz divas mapes šajā direktorijā: src un bin. Pirmajā ir avota kodi, otrajā ir apkopošanas rezultāts. Šīm mapēm būs direktoriju struktūra atkarībā no pakotnēm.

Viens fails

To var izdarīt bez papildu mapēm.
Paņemsim failu.
01 02 03 04 05 06 07 08 09 publiska klase HelloWorld ( publisks statisks void main(String args) ( System.out.println("Sveika pasaule!"); Kalkulators calc=new Kalkulators(); System.out.println("2+2="+calc.sum (2, 2)); ) )
Dodieties uz direktoriju, kurā atrodas šis fails, un izpildiet komandas.
javac HelloWorld.java Fails HelloWorld.class parādīsies šajā mapē. Tātad programma ir sastādīta. Lai to sāktu
java -classpath. Sveika pasaule

Bināro failu atdalīšana no avotiem

Tagad mēs darīsim to pašu, bet ar direktorijiem. Izveidosim HelloWorld direktoriju ar divām mapēm src un bin.
Sastādīšana
javac -d bin src/HelloWorld.java Šeit mēs esam norādījuši, ka binārie faili tiks saglabāti atsevišķā bin mapē un netiks sajaukti ar avotiem.

Mēs palaižam
java -classpath ./bin HelloWorld

Mēs izmantojam iepakojumus

Un tad pēkšņi programma pārstās būt tikai HelloWorld. Paciņām vislabāk ir piešķirt jēgpilnu un unikālu nosaukumu. Tas papildinās šī programma uz citu projektu bez nosaukuma konflikta. Izlasot dažus rakstus, jūs varētu domāt, ka pakotnes nosaukumam noteikti ir nepieciešams domēns. Tā nav taisnība. Domēni ir ērts veids, kā sasniegt unikalitāti. Ja jums nav sava domēna, izmantojiet kontu vietnē (piemēram, ru.habrahabr.mylogin). Tas būs unikāls. Lūdzu, ņemiet vērā, ka pakotņu nosaukumiem jābūt ar mazajiem burtiem. Un izvairieties no speciālo rakstzīmju lietošanas. Problēmas rodas dažādu platformu un failu sistēmu dēļ.

Ievietosim savu klasi pakotnē ar nosaukumu com.qwertovsky.helloworld. Lai to izdarītu, faila sākumā pievienojiet rindiņu
pakotne com.qwertovsky.helloworld; Izveidosim papildu direktorijus src direktorijā, lai ceļš uz failu izskatītos šādi: src/com/qwertovsky/helloworld/HelloWorld.java.
Sastādīšana
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java bin direktorijam automātiski būs direktoriju struktūra, kas līdzīga src.
HelloWorld "---bin " "---com " "---qwertovsky " "---helloworld " "---HelloWorld.class "---src "---com "---qwertovsky "-- -helloworld "---HelloWorld.java Run
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld

Ja programmā ir vairāki faili

Mainīsim programmu. Nepievērsiet uzmanību loģikai. Viņa nav.
HelloWorld.java
01 02 03 04 05 06 07 08 09 10 11 12 13 pakotne com.qwertovsky.helloworld; public class HelloWorld (publisks statisks void main(String args) ( int a=2; int b=3; Calculator calc=new Calculator(); System.out.println("Sveika pasaule!"); System.out.println( a+"+"+b+"="+calc.sum(a,b)); ) )
Kalkulators.java
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 pakotne com.qwertovsky.helloworld; importēt com.qwertovsky.helloworld.operation.Adder; publiskās klases kalkulators ( public int sum(int... a) ( Summētājs adder=new Adder(); 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 pakotne com.qwertovsky.helloworld.operation; publiskā klase Summētājs ( privātā int summa; publiskais papildinātājs() ( summa=0; ) publiskais papildinātājs(int a) ( this.sum=a; ) public void add(int b) ( sum+=b; ) public int getSum() (atgriešanas summa; ) )
Sastādīšana
javac -d bin src/com/qwertovsky/helloworld/HelloWorld.java src\com\qwertovsky\helloworld\HelloWorld.java:9: nevar atrast simbolu simbolu: klase Kalkulatora atrašanās vieta: class com.qwertovsky.helloworld.HelloWorld=new kalkulators (); ^ src\com\qwertovsky\helloworld\HelloWorld.java:9: nevar atrast simbolu simbolu: klase Kalkulatora atrašanās vieta: class com.qwertovsky.helloworld.HelloWorld kalkulators calc=new Kalkulators(); ^ 2 kļūdas Kļūda radās tāpēc, ka apkopošanai ir nepieciešami faili ar izmantoto klašu pirmkodiem (klase Kalkulators). Izmantojot atslēgu -sourcepath, kompilatoram ir jānorāda direktorijs ar failiem.
Sastādīšana
javac -avota ceļš ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java Run
java -classpath ./bin com.qwertovsky.helloworld.HelloWorld Hello Word 2+3=5

Ja esat pārsteigts par rezultātu

Ir iespējams palaist atkļūdotāju. Tam ir paredzēts jdb.
Pirmkārt, mēs apkopojam ar slēdzi -g, lai atkļūdotājam būtu informācija.
javac -g -sourcepath ./src -d bin src/com/qwertovsky/helloworld/HelloWorld.java Sākt atkļūdotāju
jdb -classpath bin -sourcepath src com.qwertovsky.helloworld.HelloWorld Inicializē jdb... > Atkļūdotājs palaiž savu iekšējo termināli, lai ievadītu komandas. Palīdzību par pēdējo var parādīt, izmantojot palīdzības komandu.
Iestatiet pārtraukuma punktu 9. rindā Kalkulators klasē
> apstāties pie com.qwertovsky.helloworld.Kalkulators:9 Pārtraukuma punkta atlikšana com.qwertovsky.helloworld.Kalkulators:9. Tas tiks iestatīts pēc klases ielādes. Mēs sākam izpildi.
> palaist palaist 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! Pārtraukuma punkta trāpījums: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=9 bci=0 9 Summators adder=new Adder(); Lai uzzinātu savus gultņus, varat parādīt avota koda fragmentu, kur pašlaik atrodas kursors.
galvenais saraksts 5 publiska klase Kalkulators 6 ( 7 public int sum(int... a) 8 ( 9 => Summators summars=new Summators(); 10 for(int i:a) 11 ( 12 adder.add(i); 13) 14 atgriež adder.getSum(); Uzziniet, kas ir mainīgais a.
galvenā druka a a = int (id=340) galvenā izgāztuves gadījums a a = ( 2, 3 ) galvenā pietura pie com.qwertovsky.helloworld.operation.Adder:19 Deferring breakpoint com.qwertovsky.helloworld.operation.Adder:19. Tas tiks iestatīts pēc klases ielādes. Turpināsim izpildi.
main cont > Iestatīt atlikto pārtraukuma punktu com.qwertovsky.helloworld.operation.Adder:19 Pārtraukuma punkta trāpījums: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=19 bci=0 19 sum+=b ; galvenais saraksts 15 ) 16 17 public void add(int b) 18 ( 19 => sum+=b; 20 ) 21 22 public int getSum() 23 ( 24 return summa; galvenās drukas summa summa = 0 galvenā druka b b = 2 pašreizējo līniju un redzēt, ka summa ir kļuvusi vienāda ar 2.
galvenais solis > Solis pabeigts: "thread=main", com.qwertovsky.helloworld.operation.Adder.add(), line=20 bci=10 20 ) galvenā drukāšanas summa sum = 2 Pacelsimies no Adder klases uz Kalkulatora klasi ka to sauca.
galvenais solis uz augšu > Darbība pabeigta: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=10 bci=36 10 for(int i:a) Noņemt pārtraukuma punktu
galvenais skaidrs com.qwertovsky.helloworld.operation.Adder:19 Noņemts: pārtraukuma punkts com.qwertovsky.helloworld.operation.Adder:19 galvenais solis > Darbība pabeigta: "thread=main", com.qwertovsky.helloworld.Calculator.sum() , line=12 bci=30 12 adder.add(i); Varat izvairīties no ieiešanas metodēs, izmantojot nākamo komandu.
main next > Darbība pabeigta: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=10 bci=36 10 for(int i:a) main next > Darbība pabeigta: "thread=main", com.qwertovsky.helloworld.Calculator.sum(), line=14 bci=42 14 return adder.getSum(); Mēs pārbaudām izteiksmes vērtību un pabeidzam izpildi.
galvenais eval adder.getSum() adder.getSum() = 5 galvenais cont > 2+3=5 Lietojumprogramma tika aizvērta

Būtu jauki pārbaudīt

Mēs izmantojam JUnit.
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 pakotne com.qwertovsky.helloworld; importēt statisko org.junit.Assert.*; importēt java.util.Arrays; importēt java.util.Collection; importēt org.junit.Test; importēt org.junit.runner.RunWith; importēt org.junit.runners.Parameterized.Parameters; @RunWith(value=org.junit.runners.Parameterized.class) publiskās klases TestCalculator ( int paredzēts; int arg; @Parameters publiska statiskā kolekcija parametri() ( atgriešanās Arrays.asList(new int( ((4), (2, 2)) ,((-1),(4, -5)) ,((0),(0,0,0) ) ,((0),()) )); ) publiskais Testkalkulators(int gaidīts, int arg) ( this.expected=expected; this.arg=arg; ) @Test public void testSum() ( Kalkulators c=jauns Kalkulators (); asserEquals(expected,c.sum(arg)); ) )
Sastādīšana
mkdir test_bin javac -classpath lib/path/junit-4.8.2.jar -sourcepath ./src -d test_bin test/com/qwertovsky/helloworld/TestCalculator.java Palaist. Klases ceļa atdalītājs operētājsistēmā Windows ir ";", operētājsistēmā Linux tas ir ":". Abi norobežotāji nedarbojas Cygwin konsolē. Varbūt ";" vajadzētu darboties, taču tas tiek uzskatīts par komandu atdalītāju.
java -classpath lib/path/junit-4.8.2.jar:./test_bin org.junit.runner.JUnitCore com.qwertovsky.helloworld.TestCalculator JUnit versija 4.8.2 .... Laiks: 0,031 Labi (4 testi)

Izveidosim bibliotēku

Kalkulatora klase ir izrādījusies noderīga, un to var izmantot daudzos projektos. Pārcelsim visu, kas saistīts ar Kalkulatora klasi, uz atsevišķu projektu.
HelloWorld "---bin "---src "---com "---qwertovsky "---helloworld "---HelloWorld.java kalkulators "---bin "---src ""---com " "---qwertovsky " "---calculator " "---Calculator.java " "---operation " "---Adder.java "---test "---com "---qwertovsky " ---calculator "---TestCalculator.java Mainiet arī pakešu nosaukumus avotos. HelloWorld.java jums būs jāpievieno rinda
importēt com.qwertovsky.calculator.Calculator; Sastādīšana.
cd Kalkulators javac -sourcepath src -d bin src/com/qwertovsky/calculator/Calculator.java Jar arhīva izveide
jar cvf calculator.jar -C bin . pievienots manifests pievienošana: com/(in = 0) (out= 0) (saglabāts 0%) pievienošana: com/qwertovsky/(in = 0) (out= 0) (saglabāts 0%) pievienošana: com/qwertovsky/calculator/ (in = 0) (out = 0) (saglabāts 0%) pievienojot: com/qwertovsky/calculator/Calculator.class(in = 497) (out= 373) (deflated 24%) pievienojot: com/qwertovsky/calculator/operation /(in = 0) (out = 0) (saglabāts 0%) pievienojot: com/qwertovsky/calculator/operation/Adder.class(in = 441) (out = 299) (deflācija 32%), palaist programmu atkritnē direktoriju.

Mums jānoskaidro, kas bibliotēkā ir iekšā

Varat izsaiņot arhīvu, izmantojot zip-izpakotāju, un redzēt, kādas nodarbības atrodas bibliotēkā.
Informāciju par jebkuru klasi var iegūt, izmantojot javap disassembler.
javap -c -classpath calculator.jar com.qwertovsky.calculator.Calculator Sastādīts no "Calculator.java" publiskās klases com.qwertovsky.calculator.Calculator paplašina java.lang.Object( public com.qwertovsky.calculator.Calculator(); Code : 0: aload_0 1: invokespecial #1; //Metode java/lang/Object." ":()V 4: return public int sum(int); Kods: 0: new #2; //class com/qwertovsky/calculator/operation/Adder 3: dup 4: invokespecial #3; //Metode 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_load35 a:42iload35 27: iaload 28: istore 6 30: aload_2 31: iload 6 33: invokevirtual #4; //Metode com/qwertovsky/calculator/operation/Adder.add:(I)V 36: iinc 5, 1 39: goto 17 : aload_2 43: invokevirtual #5; //Metode com/qwertovsky/calculator/operation/Adder.getSum:()I 46: atkal tiek izsaukta Adder klases pievienošanas metode.Pēc summas metodes pabeigšanas Adder.getSum() tiek saukts.
Bez slēdža -c programma sniegs tikai mainīgo un metožu sarakstu (ja izmantojat -private, tad visus).
javap -private -classpath calculator.jar com.qwertovsky.calculator.operation.Adder Sastādīts no "Adder.java" publiskās klases com.qwertovsky.calculator.operation.Adder paplašina java.lang.Object(private int sum; public com.qwertovsky .calculator.operation.Adder(); public com.qwertovsky.calculator.operation.Adder(int); public void add(int); public int getSum(); )

Labāk ir dokumentēt bibliotēku

Šim nolūkam nomainīsim kalkulatora klasi.
Dokumentāciju var ģenerēt ar šādu komandu. Ja rodas kļūda, programma parādīs iespējamo opciju sarakstu.
mkdir doc javadoc -d doc -charset utf-8 -sourcepath src -author -subpackages com.qwertovsky.calculator

jar arhīvu var parakstīt

Ja jums ir jāparaksta bibliotēka ar ciparparakstu, atslēgas rīks un jarsigner nāks palīgā.
Mēs ģenerējam parakstu.
keytool -genkey -keyalg rsa -keysize 2048 -alias qwertokey -atslēgu krātuves ceļš/to/qwerto.keystore Ievadiet atslēgu krātuves paroli: Atkārtoti ievadiet jauno paroli: Kāds ir jūsu vārds un uzvārds? : Valērijs Kvertovskis Kā sauc jūsu organizācijas vienību? : Qwertovsky Kā sauc jūsu organizāciju? : Qwertovsky Kā sauc jūsu pilsētu vai apvidu? : Tvera Kāds ir jūsu štata vai provinces nosaukums? : Tverskas apgabals. Kāds ir šīs vienības divu burtu valsts kods? : RU Vai pareizi ir CN=Valērijs Kvertovskis, OU=Kvertovskis, O=Kvertovskis, L=Tvera, ST=Tverskas obl., C=RU? : y Ievadiet atslēgas paroli (ATGRIEZT, ja tāda pati kā atslēgu krātuves parole): Atkārtoti ievadiet jauno paroli:
Sertifikāta parakstīšanas pieprasījuma (CSR) ģenerēšana
keytool -certreq -faila ceļš/to/qwertokey.crt -alias qwertokey -keystore ceļš/to/qwerto.keystore Nosūtiet saņemtā faila saturu sertifikācijas iestādei. Mēs saņemam sertifikātu no sertifikācijas iestādes. Mēs to saglabājam failā (piemēram, qwertokey.cer) un importējam repozitorijā
keytool -import -trustcacerts -keystore path/to/qwert.keystore -alias qwertokey -faila ceļš/to/qwertokey.cer Parakstieties jar arhīvā
jarsigner -keystore path/to/qwerto.keystore calculator.jar qwertokey Mēs nosūtām failu qwertokey.cer ikvienam, kas vēlas pārbaudīt arhīvu. Tas tiek pārbaudīts šādi
jarsigner -verify -verbose -certs -keystore path/to/qwerto.keystore calculator.jar

Izmantojot bibliotēku

Ir programma HelloWorld, kas izmanto Kalkulatora bibliotēkas klasi. Lai apkopotu un palaistu programmu, ir jāiekļauj bibliotēka.
Sastādīšana
cd HelloWorld javac -avota ceļš src -d bin -classpath ceļš/to/calculator.jar src/com/qwertovsky/helloworld/HelloWorld.java Run
java -classpath bin:path/to/calculator.jar com.qwertovsky.helloworld.HelloWorld

Programmas salikšana

To var izdarīt dažādos veidos.

Pirmais veids

cd HelloWorld echo galvenā klase: com.qwertovsky.helloworld.HelloWorld>manifest.mf echo klases ceļš: lib/calculator.jar >>manifest.mf mkdir lib cp ceļš/to/calculator.jar lib/calculator.jar jar - cmf manifest.mf helloworld.jar -C bin . Šeit ir smalkumi.
Rindā
galvenā klase: com.qwertovsky.helloworld. Laukā HelloWorld nedrīkst būt atstarpes.
Otrais smalkums ir aprakstīts: tajā pašā rindā jābūt pārejai uz nākamo rindu. Tas notiek, ja manifestu ir arhivējis trešās puses arhivētājs.
Jar programma neiekļaus pēdējo rindiņu no manifesta manifestā, ja vien beigās nebūs rindiņas pārtraukuma.
Vēl viens punkts: manifestā starp rindām nedrīkst būt tukšas rindas. Tiks parādīts kļūdas ziņojums "java.io.IOException: nederīgs manifesta formāts".

Lietojot atbalss komandu, jums ir jāuzrauga tikai atstarpe galvenās klases rindas beigās.

Otrais veids

cd HelloWorld echo klases ceļš: 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 . Tādā veidā mēs izvairāmies no kļūdas ar atstarpi galvenajā klasē.

Trešais ceļš

cd HelloWorld mkdir lib cd lib jar -xvf ceļš/uz/kalkulators.jar com/ izveidots: com/ izveidots: com/qwertovsky/ izveidots: com/qwertovsky/calculator/ inflated: com/qwertovsky/calculator/Calculator.class Created: com /qwertovsky/calculator/operation/ uzpūsts: com/qwertovsky/calculator/operation/Adder.class cd .. cp -r bin/* lib/ jar -cef com.qwertovsky.helloworld.HelloWorld helloworld.jar -C lib . rm -r lib Iekļaujiet nepieciešamo bibliotēkas kodu izpildāmajā failā.

Izpildāmā jar faila palaišana

Fails calculator.jar nav izpildāms. Bet helloworld.jar var palaist.
Ja arhīvs tika izveidots pirmajos divos veidos, tad blakus tam tajā pašā direktorijā jābūt lib mapei ar failu calculator.jar. Šādi ierobežojumi ir saistīti ar to, ka ceļš attiecībā pret izpildāmo failu ir norādīts manifesta klases ceļā.
cd Kalkulators ls ../HelloWorld/lib calculator.jar java -jar ../HelloWorld/helloworld.jar Trešā metode iekļauj izpildāmajā failā nepieciešamās bibliotēkas. Jums nav jāglabā tuvumā nepieciešamās bibliotēkas. Skrien tāpat.
java -jar ../HelloWorld/helloworld.jar

Kā rīkoties ar JavaEE lietojumprogrammām

Tāpat. No izmantotā lietojumprogrammu servera ir jāņem tikai apkopošanai paredzētās bibliotēkas. Ja es izmantoju JBoss, tad, lai kompilētu servletu, man būtu jādara kaut kas līdzīgs šim
javac -classpath path/to/jboss/common/lib/jboss-servlet*.jar -d ./classes src/com/qwertovsky/app/servlets/MenuSt.java
JavaEE lietojumprogrammu arhīva struktūrai ir jāatbilst noteiktam formātam. Piemēram
mana.auss `---META-INF | `---manifest.mf `---lib | `---mylib.jar `---my.war | `---META-INF | | `---manifest.mf | `---WEB-INF | | `---lib | | | `---myweblib.jar | | `---klases | | | `---com | | | `---... | | `---web.xml | `---index.html | `---<остальное веб-содержимое (страницы, изображения)>`---myejb.jar
Veids, kā lietojumprogrammu palaist pašā serverī, izmantojot komandrindu, katram serverim ir atšķirīgs.

Es ceru, ka šis raksts kādam kļūs par apkrāptu lapu darbam ar Java komandrinda. Šīs prasmes palīdzēs jums izprast Ant skriptu saturu un nozīmi un atbildēt uz sarežģītākiem intervijas jautājumiem nekā “Kurš IDE jums patīk vislabāk?”.

Tagad es parādīšu, kā jūs varat palaist vienkāršu Java programmu bez vides, piemēram, lietojumprogrammu servera. Pietiek ar vienu klasi, kurā tiks definēta galvenā metode.

pakotne com.blogspot;
publiskā klase IzstrādātājsPiezīmes(
public static void main(String args) (
if (args.length == 0) (
System.out
.println("Nodot kā komandrindas parametru tekstu, kuru vēlaties redzēt.");
) cits (
System.out.println("Jūs ievadījāt: " + args);
}
System.out.println ("Avots pieejams vietnē developer-remarks.blogspot.com");
}
}
Komandrindā, startējot programmu, jānodod teksts, kas tiks parādīts ekrānā. Pretējā gadījumā tiks parādīts atbilstošs ziņojums. Visi programmai nodotie parametri tiks ietverti args virkņu masīvā, ko pieņem galvenā metode. Ja parametri netiek nodoti, masīva garums būs nulle.

Tagad konfigurēsim Eclipse, lai varētu palaist jar failu no termināļa. Lai to izdarītu, vispirms ir jāizveido palaišanas konfigurācija. Augšējā izvēlnē atlasiet Palaist - Palaist konfigurācijas. Tiks atvērts šāds logs:

Kreisajā pusē esošajā sarakstā atlasiet lietojumprogrammas veidu: Java lietojumprogramma. Tur izveidojiet jaunu konfigurāciju, kā parādīts ekrānuzņēmumā. Lai to izdarītu, atlasiet mērķa projektu un klasi, kurai ir galvenā metode.

Tagad mēs esam gatavi eksportēt mūsu projektu izpildāmā jar failā. Lai to izdarītu, ar peles labo pogu noklikšķiniet uz projekta, atlasiet "Eksportēt ...", tiks atvērts šāds logs:


Koka skatā atlasiet Runnable Jar failu. Meklēšanu var ievērojami vienkāršot, ja filtrējat projekta veidu pēc nosaukuma. Noklikšķiniet uz Pabeigt. Pēc tam tiks atvērts eksporta iestatījumu logs:


Tajā atlasiet iepriekš izveidoto palaišanas konfigurāciju. Pēc tam norādiet pilnu jar faila nosaukumu. Sadaļā "Bibliotēkas apstrāde" atlasiet "Izvilkt nepieciešamās bibliotēkas ģenerētajā JAR" (izsaiņojiet vajadzīgās bibliotēkas ģenerētajā arhīvā). Noklikšķiniet uz Pabeigt, un tiks izveidots izpildāmais arhīvs.

Tā kā šajā piemērā nav atkarību no citām bibliotēkām, mēs izvēlamies pirmo vienumu. Bet, ja mums būtu vairāki desmiti vai pat simti atkarību, pareizāk būtu izvēlēties trešo vienumu "Kopēt nepieciešamās bibliotēkas apakšmapē blakus ģenerētajam JAR" (iekopēt vajadzīgās bibliotēkas apakšdirektorijā, nosaukuma daļu no kuriem atbilst izveidotajam arhīvam ), lai izvairītos no izpildāmā faila "uzpūšanās". Ja mēs būtu izvēlējušies trešo vienumu, vajadzīgās bibliotēkas būtu iekopētas atsevišķā mapē.

Tagad atveriet termināli un dodieties uz direktoriju, kurā tika izveidots izpildāmais jar. Ievadiet šādu komandu:

java -jar developer-remarks.jar sveiki pasaule!

Šādi jūs sakāt java tulkam palaist mūsu arhīvu. Ņemiet vērā, ka atstarpei un izsaukuma zīmei komandrindā ir jāatspoguļo ar atpakaļslīpssvītru.

Demonstrētā pieeja var būt noderīga izglītības un testēšanas nolūkos. Piemēram, lai izveidotu klientu, kas izsauks EJB un izdrukās sava darba rezultātu konsolē. Šīs pieejas priekšrocība ir burku arhīva palaišana bez jebkāda veida vides. Pietiek ar JDK/JRE. Ir pieejami avoti.

Uzdevums: palaidiet Java lietojumprogrammu no komandrindas.

Piemēram, es izveidoju nelielu programmu, kurai jāaprēķina apļa laukums noteiktam rādiusam. Programma satur divas klases: GeometryWF (galvenā) un Circle. Ir paredzēts izveidot konsoles lietojumprogrammu. Java lietojumprogrammas palaišana jāveic no komandrindas.

iepakojums geometrywf;
publiskā klase GeometryWF(
public static void main(String args) (
mēģināt (
if (args. ir vienāds("aplis")) (
Circle c = new Circle(Double.parseDouble(args));
System.out.println("Apļa perimetrs: "+c.perimeter());
System.out.println("Apļa ārija: "+c.area());
}
}
catch(ArrayIndexOutOfBoundsException e) (
System.out.println("Nederīgi ievades parametri!");
}
}
}

iepakojums geometrywf;
publiskās klases aplis(
publiskais dubultnieks r = 0;
publiskais aplis(dubultais r) (
this.r = r;
}
publiska dubultā zona() (
return(Math.PI*r*r);
}
publiskais dubultais perimetrs() (
return(2*Math.PI*r);
}
}

Nākamais solis ir projekta izveide. Izstrādei izmantoju NetBeans IDE. Attiecīgi montāža tiek veikta, nospiežot kombināciju "Shift + F11" ("Notīrīt un izveidot projektu"). Rezultātā es saņemu gatavu jar failu
(C:\Users\Jan\Documents\NetBeansProjects\GeometryWF\dist\GeometryWF.jar).

Palaidiet no komandrindas.

Pirms komandu uzvednes palaišanas ar peles labo pogu noklikšķiniet uz ikonas "Mans dators" un atveriet "Properties". Atveriet sadaļu "Papildu sistēmas iestatījumi" -> "Vides mainīgie". Sadaļā "Sistēmas mainīgie" ir jāizveido jauns mainīgais "JAVA_HOME" ar vērtību "" (man tas ir "C:\glassfish3\jdk\bin"). Tas pats ceļš jāieraksta esošajā Path mainīgajā aiz semikola. Mēs visu saglabājam un palaižam komandrindu.

Mēs mainām direktoriju uz mapi ar jar failu, izmantojot komandu CHDIR:

C:\Lietotāji\Jānis> CHDIR C:\Users\John\Documents\NetBeansProjects\GeometryWF\dist\

Mēs palaižam java lietojumprogrammu no komandrindas, izmantojot komandu "java -jar .

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

Izvadā mēs iegūstam:

Apļa perimetrs: 56.548667764616276
Apļa kvadrāts: 254.46900494077323



Atbalsti projektu - dalies ar saiti, paldies!
Izlasi arī
gaiļu cīņas spēles noteikumi gaiļu cīņas spēles noteikumi Mod for minecraft 1.7 10 skatīties receptes.  Receptes priekšmetu izgatavošanai Minecraft.  Ieroči Minecraft Mod for minecraft 1.7 10 skatīties receptes. Receptes priekšmetu izgatavošanai Minecraft. Ieroči Minecraft Šiliņš un sterliņu mārciņa - vārdu izcelsme Šiliņš un sterliņu mārciņa - vārdu izcelsme