Java-ongelmat
Oma kysymykseni on: Mistä löytäisin suomenkielisen mutta hyvän Java oppaan?
EDIT: olin yrittänyt googlettaa, mutta en onnistunut.
http://www.google.fi/Jani wrote:Elikkäs tänne voisi laittaa Java ongelmia.
Oma kysymykseni on: Mistä löytäisin suomenkielisen mutta hyvän Java oppaan?
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").Jani wrote:Ookei... Mutta mihin muotoon pitää tallentaa että voi suorittaa??
Tuo muuten minuakin kiinnosti, että miltä komentoriviltä tuo sitten käännetään? Perus Windows-CMD:llä en ainakaan saanut toimimaan.TheFish wrote: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").Jani wrote:Ookei... Mutta mihin muotoon pitää tallentaa että voi suorittaa??
Code: Select all
class e {
public void main() {
System.out.println("Hei Maailma");
}
};
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").-Z- wrote:Tuo muuten minuakin kiinnosti, että miltä komentoriviltä tuo sitten käännetään? Perus Windows-CMD:llä en ainakaan saanut toimimaan.TheFish wrote: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").Jani wrote:Ookei... Mutta mihin muotoon pitää tallentaa että voi suorittaa??
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...
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");}
}
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...
Ja minkä vielä huomasin: luokan perään ei laiteta puolipistettä (siis sinne loppuun viimeisen sulun jälkeen, kuten olit laittanut (jani siis))
nii alunperin olin kanssa lisäämässä tota publicia, mutta epäröin ja testasin, ja eclipse ajoi ton ilmankin. miksi?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.
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)Khamûl wrote:nii alunperin olin kanssa lisäämässä tota publicia, mutta epäröin ja testasin, ja eclipse ajoi ton ilmankin. miksi?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.
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)).TheFish wrote: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)Khamûl wrote:nii alunperin olin kanssa lisäämässä tota publicia, mutta epäröin ja testasin, ja eclipse ajoi ton ilmankin. miksi?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.
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)Murskaaja wrote:PS. java on tulkattava kieli, joten luonnollisesti se tulkkikin on olemassa (java-virtuaalikoneet ja selainten tavukoodi-tulkit).