» »

Java vprasanje - kako spraviti v *.exe datoteko

Java vprasanje - kako spraviti v *.exe datoteko

c3R4R ::

Pozdrav!

Ucim se programirati v Javi. Za ucenje uporabljam Java 2, temelji programiranja (Uroš Mesojedec, Borut Fabjan) in NetBeans IDE 4.0... Naletel sm na prvo tezavo. V bistvu ni tezava ampak bolj vprasanje.

Recimo po knjigi naredimo prvi program, ki je kot povsod pozdrav programskemu jeziku. Lepo vse to speljem... Sedaj me pa zanima kako z programom NetBeans spraviti program v *.exe datoteko. Ko recimo ko napisemo najbolj izi program in pozenemo se nam pozene le v spodnjem delu programa kjer pisemo kodo... Se lepo vidu na sliki. Jst bi pa recimo rd vidu "izdelek" v svoji datoteki ce me razumete. Da lahko ta program pozenem tudi takrat ko nimam odprtega NetBeans. Se to da? Kako?



Hvala.
Zaradi neurij imajo hrasti globje korenine.

OwcA ::

Bolj ne kot ja, prevajanje v strojno kodo bi bilo v nasprotju z bistvom Jave.
Otroška radovednost - gonilo napredka.

c3R4R ::

V cem pa je potem bistvu jave? Ni java namenjena tuki takim "samostojnim" (ce temo lohk tko recem) programom??

Kako pa potem ta program spravim v vidno razlicico? Da lahko pozenejo program tudi drugi, ki nimajo NetBeans?

[kok nimam pojma:8) ]
Zaradi neurij imajo hrasti globje korenine.

OwcA ::

Bistvo je v tem, da je tvoja aplikacija platformsko neodvisna, torej da deluje na vsakem sistemu, kjer je naložen JVM. Ampak brez slednjega pa žal ne gre. Če nisi pripravljen plačati te cene prenosljivosti se raje ozri drugam.
Otroška radovednost - gonilo napredka.

Zgodovina sprememb…

  • spremenilo: OwcA ()

c3R4R ::

Okej, to mi je zdej jasno.

Torej s tem programom ni mozno naredit tega kar mislim? Al je misljena druga cena?

Ozrem naj se kam?

Sori, za sitnost.. Sam so pocitnice pa mam prevec casa..:D
Zaradi neurij imajo hrasti globje korenine.

Nerdor ::

Če si Windows aparabnik (beri: maš windowse), se tu da naresti s pomočjo CygWin okolja za windowse (ti pričara bash in ostale gpl programe). Med njimi boš našel "gcj" Gnu Compiler for Java, ki ti bo v *.exe prevedel. :)
Pri Linuxu, pa z malo sreče že imaš "gcj", kot jdk in itd.

Drugače pa, niti ne potrebuješ java program spremeniti v *.exe. Zakaj=? Ker tako .Net kot java (1.4, 1.5) imajo zadevščino imenovano JIT! JIT pomeni "just in time" compiler. Torej kodo, ki je .Net ali Java compiler zgeneriral v baytecodo (nekakšno meta kodo), bo ob vsakem zagonu tvojega_programa.java poklical JIT, ki bo meta byte kodo prevedel v strojno kodo ciljne platforme. (v tvojem priemru v WinXP na Intel PC). Zagon bytecode je počasnejši od native code (razumljivo, saj se še inicializira okolje s JIT-om), vendar, ko je program že v pomniliniku, je v obliki native code. :)) Razumljivo!?

Ps: Edino, kar bi "profitiral", s orodjem "gcj" java v exe, je to, da se nebi inicijaliziralo celotno okolje s Virtual Machine in JIT. Torej, pridobil bi na zagonu programa in zasedenosti spomina. Vendar, mislim, da pri tem nimaš več na voljo garbage colectorja. In tako ti postane program ranljiv, kot bi bil pisan v C/C++. A to je pa že druga tema..
PSS: Zanenc je s pomočjo gcj prevajal servlete za Rensin splet. strežnik, da bi pridobil na odzivnosti in hitrosti obdelave (renderinga html strani). Samo nevem, koliko je dejansko profitiral?:\
... for lifetime!

Zgodovina sprememb…

  • spremenil: Nerdor ()

Nerdor ::

Lahko pa se poigraš s JexePacker-jem, ki ti java program s resourci spravi (skompresira!?) v exe.
Ali pa nek Excelsiour JET Compiler zadevščina.

Nista zastojn! Pa premisli, če res to potrebuješ. Obstaja še en trik, da spraviš java v *.jar (s jar -tvr TvojProgram.jar TvojiClassi.java (jar je isto kot zip)) in dodaš dodatno datoteko manifest.mf v /META-INF/ direktoriju. Takšen *.jar naj bi v Explorerju ali Windows Commanderju s 2x klikom ali Enterjem pognal. :)
... for lifetime!

Utk ::

Si sploh kdaj zagnal stvar iz konzole? Javac *.java in potem java TvojProgram? Mam občutek da ne...

c3R4R ::

@Nerdor
Torej kodo, ki je .Net ali Java compiler zgeneriral v baytecodo (nekakšno meta kodo), bo ob vsakem zagonu tvojega_programa.java poklical JIT, ki bo meta byte kodo prevedel v strojno kodo ciljne platforme.
Ja kako pa jst to meta byte kodo spravm na drugo platformo? To me zanima že ves čs zato pa sprasujem po exe fajlu...

@CrniE
Si sploh kdaj zagnal stvar iz konzole? Javac *.java in potem java TvojProgram? Mam občutek da ne...
To mi ni nikol uspel.. Sm napisu program v Notepadu sou v konzolo not napisu recimo neki podobnega javac Prvi.java pa se ni zgodil nc. In pol sm pustu to pr mer..
Razn ce mi se enkrat razlozis, kako bi jst to naredu.:)
Zaradi neurij imajo hrasti globje korenine.

c3R4R ::

Če si Windows aparabnik (beri: maš windowse), se tu da naresti s pomočjo CygWin okolja za windowse (ti pričara bash in ostale gpl programe). Med njimi boš našel "gcj" Gnu Compiler for Java, ki ti bo v *.exe prevedel.
Zdej sm si to namestil... In se mi odpre konzola.. In kako jst zdej prevedem to??:8)
Zaradi neurij imajo hrasti globje korenine.

infiniteLoop ::

Za zacetek ti predlagam da dokoncas instalacijo j2sdk in sicer tako da med enviroment varibles (windows: control panel -> system -> advanced -> enviroment variables -> system variables -> new) dodas spremenljivko JAVA_HOME, ki naj kaze na direktorij kamor si namestil j2sdk(recimo c:\j2sdk1.4.2), nato pa se v spremenlivko PATH dodas pot do j2sdk/bin (recimo c:\j2sdk1.4.2\bin) direktorija (to naredis podobno kot dodajanje le da na koncu ne kliknes new ampak oznacis spremenljivko PATH in kliknes edit, direktoriji so tu loceni s podpicji, tako moras paziti, da bos pred svoj direktorij pac vpisal se podpicje ce ga se ni tam).
Sedaj lahko iz kateregakoli direktorija pozenes ukaza "javac ImeRazreda.java" in "java ImeRazreda". Ce ti to ni dovolj, s lahko pomagas z dvema "fintama".
Prva: naredis .bat datoteko, ki zazene program. Najenostavneje je da v notepadu naredis "ImeRazreda.bat" file in v njega vpises "java ImeRazreda". Za kaj vec si poisci kak tutorial.
Druga: Naredis lahko executable jar, ki se zazene, ko nanj dvakrat kliknes. O tem se mi ne da na dolgo in siroko razlagati. Povem naj le da je .jar datoteka le .zip datoteka, ki ima spremenjeno koncnico in vsebuje ime razreda, katerega main metodo naj se pozene. Vec o tem si lahko preberes tukaj (osnova) in tukaj (detajli).


:) vse skupaj je kr lepo razlozeno tudi tulele :)

Happy computing!
None of us is as dumb as all of us.

c3R4R ::

Sedaj lahko iz kateregakoli direktorija pozenes ukaza "javac ImeRazreda.java" in "java ImeRazreda".
No jst mam v notepadu shranjeno datoteko napisano v javi. Ime razreda je Prvi.java .. Ta datoteka je shranjena na D:\Programi ... Kako sedaj prevedem?

Če sm poskusil z:
D:\javac Prvi.java

Mi napise:
Error: cannot read: Prvi.java
1 error

:8)
Zaradi neurij imajo hrasti globje korenine.

Zgodovina sprememb…

  • spremenil: c3R4R ()

c3R4R ::

Prva: naredis .bat datoteko, ki zazene program. Najenostavneje je da v notepadu naredis "ImeRazreda.bat" file in v njega vpises "java ImeRazreda". Za kaj vec si poisci kak tutorial.
Ja okej to mi je zdej ratal. Ja mi napise pac pozdrav javi.. Sam se mi pokaze samo za trenutek.. Kako nardim da je .bat fajl odprt dokler ga jst ne zaprem?? Se to...
Zaradi neurij imajo hrasti globje korenine.

infiniteLoop ::

v .bat file dodaj vrstico v katero napises pause. To je vse lepo napisano v batch file help-u, ki sem ti ga linkal ze prej.
None of us is as dumb as all of us.

c3R4R ::

Nism sou gledat.. Hvala...:8)
Zaradi neurij imajo hrasti globje korenine.

švrk ::

@c3R4R
odgovor na tvoje vprašanje je .jar file in ne exe. Ko zaključiš projekt ga spraviš v jar in ga lahko uporablja vsak, ki ima naloženo javo na svojem računalniku. exe file se v javi ne delajo čeprav ga lahko narediš s converterjem, ki ga je predlagal info. Pri izdelavi jar fila moraš tudi ustrezno spisati main metodo sicer ti ne bo delovalo. Ce rabis ti lahko kasneje na ZS posljem kak primer.

killa bee ::

kaj pa če hočeš da se zažene ob zagonu programa Windows, pol mora bit v .exe?

norcuron ::

Predvidevam, da je v 7-ih letih že prišel do odgovora.
Great are mysteries of the mind ... or not?

Zgodovina sprememb…

  • spremenil: norcuron ()

metalc ::

killa bee je izjavil:

kaj pa če hočeš da se zažene ob zagonu programa Windows, pol mora bit v .exe?


Ni treba, če imaš jar, ga poženeš z:
java -jar jarfile.jar <morebitni_argumenti_ki_jih_main_prejme_kot_String[]>


Jar mora seveda biti pravilno zgenerira, mdr. mora v manifestu biti, kateri main (od katerega razreda, če jih ima več to metodo) naj zažene. Z Eclipsom ali Antom se ga da preprosto zgenerirati.

killa bee ::

aha, hvala, to sm se zmer sprašvau


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

JAVA SDK - namestitev

Oddelek: Programiranje
122419 (1517) cobrica
»

Java problem

Oddelek: Programiranje
201515 (1213) infiniteLoop
»

[Java] Zagon brez instalirane Jave

Oddelek: Programiranje
181727 (1465) noraguta
»

Kako prevesti datoteko ki ima koncnico *.jar

Oddelek: Programiranje
71249 (1181) kopernik
»

JAVA - kako začeti...?

Oddelek: Programiranje
253073 (2688) borut-t

Več podobnih tem