Java-ongelmat

Muu yhteisön välinen keskustelu.
Post Reply
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Java-ongelmat

Post by Jani »

Elikkäs tänne voisi laittaa Java ongelmia.

Oma kysymykseni on: Mistä löytäisin suomenkielisen mutta hyvän Java oppaan?

EDIT: olin yrittänyt googlettaa, mutta en onnistunut.
Last edited by Jani on Thu Jan 01, 2009 1:15 am, edited 1 time in total.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: Java-ongelmat

Post by -Z- »

Jani wrote:Elikkäs tänne voisi laittaa Java ongelmia.

Oma kysymykseni on: Mistä löytäisin suomenkielisen mutta hyvän Java oppaan?
http://www.google.fi/

Tässä vielä haku tehty puolestasi: http://www.google.fi/search?hl=fi&rlz=1 ... =Hae&meta=

Tai, jos nyt ihan vakavissaan ollaan, niin suositelisin tarkastamaan ohjelmointiputkan.
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Java-ongelmat

Post by Jani »

Ookei... Mutta mihin muotoon pitää tallentaa että voi suorittaa??
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Java-ongelmat

Post by TheFish »

Jani wrote:Ookei... Mutta mihin muotoon pitää tallentaa että voi suorittaa??
Siis sitä sorsaahan (.java) ei suoriteta, vaan se pitää käännetään (.class tiedostoksi) ja suoritetaan se. Tuo kääntäminen tapahtuu komentoriviltä komennolla 'javac', jolle annat käännettävät tiedostot (muista laittaa .java pääte). Käännetyn .class tiedoston saat suoritettua komennolla 'java', jolle annat main-metodin sisältävän .class tiedoston (tähän ei laiteta päätettä). Mikäli tuo main-metodin sisältävä tiedosto on jossain paketissa (package), niin sille ei anneta polkua normaalissa muodossa (esim. "testi/Main") vaan erotetaan paketin nimi pisteellä (eli "testi.Main").
CoolBasic henkilökuntaa
Kehittäjä
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: Java-ongelmat

Post by -Z- »

TheFish wrote:
Jani wrote:Ookei... Mutta mihin muotoon pitää tallentaa että voi suorittaa??
Siis sitä sorsaahan (.java) ei suoriteta, vaan se pitää käännetään (.class tiedostoksi) ja suoritetaan se. Tuo kääntäminen tapahtuu komentoriviltä komennolla 'javac', jolle annat käännettävät tiedostot (muista laittaa .java pääte). Käännetyn .class tiedoston saat suoritettua komennolla 'java', jolle annat main-metodin sisältävän .class tiedoston (tähän ei laiteta päätettä). Mikäli tuo main-metodin sisältävä tiedosto on jossain paketissa (package), niin sille ei anneta polkua normaalissa muodossa (esim. "testi/Main") vaan erotetaan paketin nimi pisteellä (eli "testi.Main").
Tuo muuten minuakin kiinnosti, että miltä komentoriviltä tuo sitten käännetään? Perus Windows-CMD:llä en ainakaan saanut toimimaan.
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Java-ongelmat

Post by Jani »

en minäkään.

Miten tekstin "Hei Maailma" saa tulostettua koska seuraava ei toimi JCreator LE tulkilla?

Code: Select all

class e {
	public void main() {
		System.out.println("Hei Maailma");
	}
};
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: Java-ongelmat

Post by temu92 »

Kyseessä on silti CB foorumi ja veikkaan ettei täällä lähellekään jokainen osaa javaa tai tiedä miten sitä käytetään. Joojoo täällä on kyllä C++ aihekin mutta mainostetaanpa nyt kuitenkin tällaisille kysymyksille paljon parempaa paikkaa:
http://www.ohjelmointiputka.net/keskustelu/

Nonetheless, itsellä oli javaa 9. lk mutta en nyt enää muista siitäkään mitään. Kurssista silti nettosin 10 numeroksi :) Vinkkinä vielä että mieluummin kannattaa käyttää ainakin aluksi jotain IDEä eikä yrittää suoraan komentoriviltä jos muitakin keinoja on. Eclipse on todella hyvä, lataappa se (google on ystäväsi).
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Java-ongelmat

Post by TheFish »

-Z- wrote:
TheFish wrote:
Jani wrote:Ookei... Mutta mihin muotoon pitää tallentaa että voi suorittaa??
Siis sitä sorsaahan (.java) ei suoriteta, vaan se pitää käännetään (.class tiedostoksi) ja suoritetaan se. Tuo kääntäminen tapahtuu komentoriviltä komennolla 'javac', jolle annat käännettävät tiedostot (muista laittaa .java pääte). Käännetyn .class tiedoston saat suoritettua komennolla 'java', jolle annat main-metodin sisältävän .class tiedoston (tähän ei laiteta päätettä). Mikäli tuo main-metodin sisältävä tiedosto on jossain paketissa (package), niin sille ei anneta polkua normaalissa muodossa (esim. "testi/Main") vaan erotetaan paketin nimi pisteellä (eli "testi.Main").
Tuo muuten minuakin kiinnosti, että miltä komentoriviltä tuo sitten käännetään? Perus Windows-CMD:llä en ainakaan saanut toimimaan.
Nuo komentorivi komennot siis toimivat vain jos sinulta löytyy PATHistä joku jdk (java development kit). Nuohan siis eivät oikeastaan ole komentoja, vaan jdk:n sisältämiä ohjelmia, jotka löytyvä jdk:n 'bin' hakemistosta. Eli voit yrittää käyttää komentona täyttä polkua jdk:hon (esim "C:\Program Files\Java\jdk1.6.0_10\bin\javac").
EDIT:

Itse suosittelisin käyttämään alkuun komentoriviä ja esim notepad++ editorina, koska se pakottaa oikeasti opettelemaan asiat. IDE:t kuten Eclipse sisältävät sen sijaan kaikki mahdolliset automaattiset täydennykset ja valmiit koodin generointi viritelmät...

CoolBasic henkilökuntaa
Kehittäjä
Khamûl
Member
Posts: 73
Joined: Sat Sep 22, 2007 8:46 pm

Re: Java-ongelmat

Post by Khamûl »

[quote="Jani"]en minäkään.

Miten tekstin "Hei Maailma" saa tulostettua koska seuraava ei toimi JCreator LE tulkilla?

Code: Select all

class e {
	public void main() {
		System.out.println("Hei Maailma");
	}
};[/quote]
[/quote]
en tiiä tosta tulkista, enkä ees tiiä puhutaan ko samasta asiasta, mutta eclipsellä ja netbeansillä se muistaakseni meni näin:
EDIT: heti meinas tulla moka kun alkaa neuvomaan :P eli ajoin läpi eclipsellä ja toimi:
[code]
public class e {

		public static void main(String args[])
		{System.out.println("HelloWorld");}
		
}
sulta tais puuttua "String args[]" tuolta mainista, älä kysy, se on kuulemma jotain rautaan liittyvää syvempää mikä pitää siellä olla aina....
tai näin on ainakin mulle sanottu, oon tosin opetellu tutojen ja kaverien välityksellä nii että... :D

theFish: mutta toisaalta jos aloittaa notepadillä, voi turhautua kun joutuu koko ajan etsimään jotain pikkuvirheitä.....
mutta täähän on näitä mielipidekysymyksiä....

EDIT: näyttävästi ryssin aika pahasti nuo quotet ja codet, mutta kait siitä saa selvää xD
Last edited by Khamûl on Thu Jan 01, 2009 10:02 pm, edited 1 time in total.
Will the highways on the Internet become more few? --G.W.Bush
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Java-ongelmat

Post by TheFish »

Tuo 'String[] args' on siis taulukko joka sisältää ohjelmalle annetut komentorivi parametrit (eli jos ohjelma ajetaan komentoriviltä ja sen perään kirjoitetaan jotain arvoja, esim. tekstieditoriin avattavan tiedoston polku). Lisäksi tuossa oli se vika, että luokkaa 'e' ei oltu määritelty julkiseksi (public). main-metodin sisältävän luokan pitää olla aina julkinen, ja jokaisessa tiedostossa pitää muutenkin olla yksi julkinen luokka.
EDIT:

Tietysti voisihan tässä vielä valittaa siitä, että mitään java-tulkkia ei ole olemassakaan. Se on kääntäjä. Mutta ehkä tämä menee jo liikaa pilkun viilaamiseksi...

EDIT:

Ja minkä vielä huomasin: luokan perään ei laiteta puolipistettä (siis sinne loppuun viimeisen sulun jälkeen, kuten olit laittanut (jani siis))

CoolBasic henkilökuntaa
Kehittäjä
Khamûl
Member
Posts: 73
Joined: Sat Sep 22, 2007 8:46 pm

Re: Java-ongelmat

Post by Khamûl »

Lisäksi tuossa oli se vika, että luokkaa 'e' ei oltu määritelty julkiseksi (public). main-metodin sisältävän luokan pitää olla aina julkinen, ja jokaisessa tiedostossa pitää muutenkin olla yksi julkinen luokka.
nii alunperin olin kanssa lisäämässä tota publicia, mutta epäröin ja testasin, ja eclipse ajoi ton ilmankin. miksi? :o
Will the highways on the Internet become more few? --G.W.Bush
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Java-ongelmat

Post by TheFish »

Khamûl wrote:
Lisäksi tuossa oli se vika, että luokkaa 'e' ei oltu määritelty julkiseksi (public). main-metodin sisältävän luokan pitää olla aina julkinen, ja jokaisessa tiedostossa pitää muutenkin olla yksi julkinen luokka.
nii alunperin olin kanssa lisäämässä tota publicia, mutta epäröin ja testasin, ja eclipse ajoi ton ilmankin. miksi? :o
Oma mokani näemmä. Olen aina ollut siinä uskossa että mainin pitää olla public luokan sisällä, mutta näemmä sen ei tarvitsekkaan. no, aina oppii uutta. (Siis tarkennuksena, olen siis näemmä ymmärtänyt väärin sen, että tiedostossa pitäisi olla yksi julkinen luokka. Se opas josta joskus aikanaan tuonkin opettelin varmaankin tarkoitti että julkisia luokkia voi olla vain yksi per tiedosto, mutta ei tarvitse olla yhtään)
CoolBasic henkilökuntaa
Kehittäjä
Murskaaja
Member
Posts: 92
Joined: Tue Aug 28, 2007 8:19 pm
Contact:

Re: Java-ongelmat

Post by Murskaaja »

TheFish wrote:
Khamûl wrote:
Lisäksi tuossa oli se vika, että luokkaa 'e' ei oltu määritelty julkiseksi (public). main-metodin sisältävän luokan pitää olla aina julkinen, ja jokaisessa tiedostossa pitää muutenkin olla yksi julkinen luokka.
nii alunperin olin kanssa lisäämässä tota publicia, mutta epäröin ja testasin, ja eclipse ajoi ton ilmankin. miksi? :o
Oma mokani näemmä. Olen aina ollut siinä uskossa että mainin pitää olla public luokan sisällä, mutta näemmä sen ei tarvitsekkaan. no, aina oppii uutta. (Siis tarkennuksena, olen siis näemmä ymmärtänyt väärin sen, että tiedostossa pitäisi olla yksi julkinen luokka. Se opas josta joskus aikanaan tuonkin opettelin varmaankin tarkoitti että julkisia luokkia voi olla vain yksi per tiedosto, mutta ei tarvitse olla yhtään)
Public-määre on vain näkyvyyden säätelyä, se ei määritä mitä luokka (tai mikään muukaan) voi sisältää ja mitä ei. Jos public-määreen jättää pois esim. luokasta, sen näkyvyys rajoittuu sen kuulumaan pakkaukseen (oletusarvoisesti samassa hakemistossa olevat luokat kuuluvat samaan pakkaukseen (ns. nimetön pakkaus)).

Ja kuten TheFish jo korjasikin, tiedostossa voi olla vain yksi julkinen luokka, mutta ei ole pakko. Ja sen julkisen luokan (jos se siellä on) nimen on oltava sama kuin tiedoston nimen, mutta siitähän kääntäjä jo älähtääkin. :)


PS. java on tulkattava kieli, joten luonnollisesti se tulkkikin on olemassa (java-virtuaalikoneet ja selainten tavukoodi-tulkit).
ASCII star wars Xtreme | Cool Bombers | Combat (kehitteillä)

RedShadow productions
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Java-ongelmat

Post by TheFish »

Murskaaja wrote:PS. java on tulkattava kieli, joten luonnollisesti se tulkkikin on olemassa (java-virtuaalikoneet ja selainten tavukoodi-tulkit).
Lienee jo turhaa pilkun viilaamista tosiaan, mutta voisin silti väittää, että java tulkkia ei ole olemassa. Java virtuaalikonehan tulkkaa käännettyä tavukoodia, jota saa kyllä aikaiseksi muillakin kielillä kuin javalla. (Ja virtuaalikoneissahan on yleensä hotspot ominaisuus, joten koko koodi ei edes pyöri tulkattuna. En kyllä tiedä lasketaanko tuo kuitenkin tulkkaukseksi)
Mutta oli miten oli, ainakaan tuossa tapaukessa ei voinut olla kyse virtuaalikoneesta, koska jani ei olisi mitenkään voinut saada tuota kääntäjästä läpi.
CoolBasic henkilökuntaa
Kehittäjä
User avatar
Ilmuri
Developer
Developer
Posts: 277
Joined: Sun Aug 26, 2007 2:46 pm
Location: \o

Re: Java-ongelmat

Post by Ilmuri »

Selkeytetäänpäs: Java-kääntäjä kääntää lähdekoodin tavukoodiksi, jonka Java-tulkki joko suorittaa tai kääntää lennossa konekielelle (JIT).
CoolBasic henkilökuntaa
Kehittäjä
CoolBasic Classic
Post Reply