Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java ohjelmat

Sivun loppuun

c_max [03.09.2005 20:41:25]

#

Olen tässä alkanut opiskelemaan javaa. Olen nyt tihrustanut yhden ohjelman ja saanut sen tavumuotoon. Kuinka saan sen tavukoodin windowsilla suoritettavaksi ohjelmaksi?

Deewiant [03.09.2005 21:43:19]

#

Esimerkiksi GCJ:llä, GNU:n Java-kääntäjällä. Saat siitä Windows-version helpoiten MinGW:n asentamalla.

Jos haluat kuitenkin vain _ajaa_ ohjelmasi (pitäen sen tavumuodossa), käytä komentoa java <mikälie>.class.

Juice [03.09.2005 22:09:50]

#

Kyllähän sen tavukoodinkin voi suorittaa, juuri tuo java [luokannimi]. Laita se vaikka BATiin niin helpottuu. Isommat ohjelmat kannattaa sitten paketoida JARiin (heh :) ja ajaa java -jar jarinnimi.jar. Voit toki lähteä sitä jotenkin muutenkin kääntelemään, mutta se lienee tarpeetonta.

EDIT: Netbeans IDEllä JARien tekeminen onnistuu helposti, sen enempiä säätelemättä ;)

c_max [03.09.2005 22:17:19]

#

Yritin nyt tuota java [luokkanimi] juttua ja se antaa seuraavanlaista errortekstiä:

Registry key 'Software\JavaSoft\Java Runtime Envi
has value '1.4', but '1.5' is required.
Error: could not find java.dll
Error: could not find Java 2 Runtime Environment.

squid [03.09.2005 23:38:51]

#

Koneeltas puuttuu Java2 Runtime. Lataa se Sunin sivulta.

Juice [03.09.2005 23:59:41]

#

Itse asiassa suosittelisin lataamaan NetBeansin. Pikkuohjelmiin se on ehkä hieman turhan järeä, mutta mm. Code completion helpottaa elämää. JARit onnistuu yhdellä klikkauksella.

Latauslinkki (sekä Java Runtime että Netbeans):
http://java.sun.com/j2se/1.5.0/download.jsp

c_max [04.09.2005 13:15:44]

#

Asensin sen java 2 runtimen ja lisää tai poista sovelluksessa lukee: J2SE Runtime Environment 5.0 eikä se javakomento toimi vieläkään! tulee samat virheilmotukset...

FooBat [04.09.2005 13:33:32]

#

Sinulla on nyt todennäköisesti kaksi java virtuaalikonetta asennettuna. Vanhempi versio 1.4 ja nyt tuo uusi versio 1.5 (java 5) ja komentotulkin java komento osoittaa siihen vanhaan. Kokeile ajaa 'java -version', jolla näkee mikä versio on kyseessä. Jos tosiaan on näin, joudut käsin muuttamaan PATH ympäristömuuttujan viittauksen vanhasta java hakemistosta uuteen. Yleensä eri virtuaalikoneet asennetaan hakemistoon C:\Program Files\Java ja sen alihakemistoihin.

c_max [04.09.2005 15:44:54]

#

Edistystä! sain laitettua sen komennon osoittamaan uudempaan javaan ja nyt kun yritän ajaa tavutiedostoni se antaa seuraavan ilmoituksen eikä muuta tapahu;
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldApp

Deewiant [04.09.2005 16:16:24]

#

Tuo on muistaakseni se virheilmoitus, joka tulee kun Java-sorsasi pääluokan nimi (sen luokan, joka sisältää main-metodin) ei vastaa tiedoston nimeä.

c_max [04.09.2005 19:58:35]

#

tarkistin sen sorsan ja pääluokan nimi pitäis olla oikein...
muuten: pitääkö niiden tavukoodien olla jossain erityisessä kansiossa jotta se javajuttu toimii?

Sami [04.09.2005 20:30:36]

#

Tarkista ainakin seuraavat asiat:
Tiedoston nimi ja luokan nimi ovat samat (kirjainkoko mukaanlukien). Esim. "HelloWorldApp.class" ja "public class HelloWorldApp {..."
Kai lähdekoodit on käännetty? :)
Yrität ajaa tiedoston komennolla "java HelloWorldApp" ei siis "java HelloWorldApp.class".

c_max [05.09.2005 13:40:21]

#

Kaikko nuo asiat pitäis olla oikein...

pitääkö niiden tavukoodien olla jossain erityisessä kansiossa jotta se javajuttu toimii?

_Pete_ [05.09.2005 14:58:49]

#

peredic kirjoitti:

Kaikko nuo asiat pitäis olla oikein...

pitääkö niiden tavukoodien olla jossain erityisessä kansiossa jotta se javajuttu toimii?

java hakee määritellystä classpath:sta luokkia joita tarvitaan ohjelman ajon aikana. Käytetyn classpath:n voi määritellä joko ympäristömuuttujaan CLASSPATH tai sitten komentoriviltä vivulla -classpath.

Jos HelloWorldApp ohjelmasi class tiedosto on hakemistossa /home/tunnukseni/J/HelloProject niin käynnistä se käskyllä:

java -classpath /home/tunnukseni/J/HelloProjekt HelloWorldApp

c_max [05.09.2005 19:56:35]

#

Siis sanoisitko uusiks, Mikä ihmeen "/home/tunnus/"?
mihin tuo home viittaa ja onko toi tunnus koneen käyttäjätunnus. muuten, käytän windowssii...

Juice [05.09.2005 20:05:48]

#

java -classpath C:\Documents and Settings\peredic\Omat Tiedostot\Java\HelloProjekt HelloWorldApp

Tai sitten asetat ohjauspaneelista CLASSPATHiksi ".", eli nykyisen hakemiston. /home/tunnus on Linuxin hakemistohierarkiaa...

c_max [05.09.2005 20:27:59]

#

Okei, nyt kun ajan sen ohjeiden mukaan siihen konsoliin ilmestyy teksti mikä ohjelman piti tulostaa. Olen siis onnistunut?

FooBat [05.09.2005 21:10:08]

#

peredic kirjoitti:

Okei, nyt kun ajan sen ohjeiden mukaan siihen konsoliin ilmestyy teksti mikä ohjelman piti tulostaa. Olen siis onnistunut?

Jos kerta ohjelma tekee sen mitä olet sen käskenyt tehdä, niin olet mitä todennäköisemmin onnistunut.

c_max [05.09.2005 21:23:19]

#

Jippiii! :D

Seuraavaksi: Miten saan käännettyä tavukoodit EXE ohjelmaksi Käyttäen MinGW:tä jota minulle suositeltiin?

Juice [06.09.2005 18:37:09]

#

EI sun edelleenkään kannata/tarvitse sitä tehdä. Lue lisää.
Ajat vain java -jar helloWorld.jar :P

c_max [06.09.2005 19:42:04]

#

Juice kirjoitti:

EI sun edelleenkään kannata/tarvitse sitä tehdä. Lue lisää.
Ajat vain java -jar helloWorld.jar :P

Entä jos alan levittään javaohjelmiani?

Juice [06.09.2005 21:48:13]

#

Laitat JARiin, edelleen. Itsekin olen tehnyt niin ja kylläpä ovat näyttäneet toimivan. Itse olen laittanut batin samaan zippiin (batissa on rivi java -jar jarinnimi.jar) vielä varmuuden vuoksi. Voit vaikka katsoa filuja osoitteessa http://juiceplatz.net ja todeta, että kyllä ne JARina toimivat ;)

Blaze [06.09.2005 22:09:27]

#

peredic kirjoitti:

Entä jos alan levittään javaohjelmiani?

Eikös sillon ole kivaa, että ne toimii muillakin käyttiksillä ku Windowsilla?

panttu [06.09.2005 23:41:58]

#

TIPS! JAR paketit ainakin windosissa käynnistyy klikkaamalla jar tiedostoa, jos ajonaikaninen kirjasto on asennettuna.

_Pete_ [07.09.2005 09:19:00]

#

peredic kirjoitti:

Siis sanoisitko uusiks, Mikä ihmeen "/home/tunnus/"?
mihin tuo home viittaa ja onko toi tunnus koneen käyttäjätunnus. muuten, käytän windowssii...

Niin se oli vaan esimerkki, jota olisi pitännyt osata soveltaa vaihtamalla "/home/tunnus......" tilalle se hakemisto, missä itse projektiaan kehittää. Kannattaa muuten myös tutustua IDEA kehitysympäristöön se on IMO paras/helpoin mitä on saatavilla. Ainut huono puoli siinä on maksullisuus. Tosin 30pv kokeilulisenssin saa tilattua...


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta