mistä saa java kääntimen?
Lisäys: Voisiko joku ystä väliisesti kertoa mistä saa java koodin kääntimen? Ja millainen sen pitää olla?
Lisäys: Ja vielä että olen aloitteleva. Echoa oon kyllä käyttänyt kun tein peinen teksti seikkailun mutta haluaisin aloittaa java koodauksen mutta onko se minulle liian haastava kun kokemusta ei oikein ole. Oppaan olen kyllä jo löytänyt.
Asenna JDK, tai/ja Eclipse IDE for Java EE Developers
jokunen1 kirjoitti:
.. haluaisin aloittaa java koodauksen mutta onko se minulle liian haastava kun kokemusta ei oikein ole ..
Ainahan aloitetaan ilman kokemusta.
Itse suosittelisin NetBeansiä.
Siismikä näistä on tarkoitus ladata ikä on sopiva javan koodaukseen? Link:http://netbeans.org/downloads/index.html
Lisäys: Sori kirjotus virheet.
Java SE. Se ei sisällä kaikkea "ylimääräistä".
Hei tarviiko tähän ohjelmaan jonkin java JDK?
http://www.oracle.com/technetwork/java/javase/
Avaa tuo, paina Accept License Agreement ja valitse ohjelman versio minkä haluat. Todennäköisesti kohdasta Windows.
Saat siitä JDK:n joka vaaditaan Java-kehitykseen, sekä NetBeansin, joka toimii IDE:nä eli editorina.
No niin slkoihn toimia! Kiitos kaikille avusta kysyn täältä jos koodausta opetellessa tulee ongelmia.
Lisäys: No niin alkoihan toimia!
No niin nyt tuli ohjelmoitia opetellessa mieleen että miten nämä ohjelmat saa oikein taallennettua ajettavaksi tiedoitoiksi? (saako .exe tiedostoiksi?)
Ohjelma.jar vastaa ohjelma.exe:ä. Se löytyy buildin (vasara NetBeansissä) jälkeen dist-hakemistosta.
Saan hakemistoon dist ohjema.jar tiedoston mutta kun yritän avata sen se ei tee mitään pitääkö tiedostolle tehdä jotain vai onko vika koodissa. NetBeans:sissa ajaessa kyllä toimi.
Siis yrität avata sen miten? "unzip ohjelma.jar"?
Vai tarkoitatko, että yrität suorittaa sen? "Java ohjelma", vai jotenkin muuten?
Tarkoitan että tuplalikkaan sitä. eli suorittaa.
Välähtääkö komentorivi?
Suorita jar-tiedosto vaikka komentoriviltä java -jar ohjelma.jar. Jos saat virheitä, niin näet ne siinä.
Jos kääntäjä on tehnyt jar-tiedoston (valittamatta), vika voisi olla Could not find the main class -virheestä (katso Macron mainitsemaa komentorivin tulostetta).
Käynnistäessä ei käy musta laatikko.
Saanko tarkemmin ton komento rivin siis mitä siihen pitää kirjottaa?
Output kirjoitti:
To run this application from the command line without Ant, try:
java -jar "C:\Users\user.name\Documents\NetBeansProjects\HeiMaailma\dist\HeiMaailma.jar"
Eli aja buildi uudelleen ja katso Outputista (saa näkyviin valikosta Window > Output > Output, mikäli on piilossa), mitä sen loppuosassa lukee.
Tunnen itseni tymäksi mutta voiko joku selittää mikä on output?
Ohjelmalle syötettävää tietoa kutsutaan syötteeksi (input) ja ohjelman ulos antamaa tietoa kutsutaan tulosteeksi (output)
Eli siis output on ohjelman tuloste.
Tässä yhteydessä kuitenkin viitattaneen ohjelmointiympäristössä olevaan ikkunaan, joka on otsikoitu "output" ja johon tuon ohjelman tuloste tulee näkyville.
Aa! Kiitos tiedosta.
Tossa nyt on se output: Error: Unable to access jarfile C\Users\user.nameDocuments\NetBeansProjects\eka\
Yritä uudestaan. Virhe johtuu todennäköisesti kirjoitusvirheestä. Sen pitää olla just eikä melkein se, mitä Output sanoo.
Jos se tosiaan heittää "C\Users\user.nameDocuments\..." niin voi jo päätellä aika paljon miksi ei toimi. : puuttuu C jälkeen, user.name:n jälkeen puuttuu \, koneen käyttäjä ei todennäköisesti ole user.name jne.
Grez: Komentoriviltä ei voi kopioida Ctrl+C:llä (liekö ollenkaan), joten homma pitää kirjoittaa käsin. Nuo kolme oikeasti virheellistä kohtaa voi laskea puhtaiksi kirjoitusvirheiksi. Sitä paitsi käytin itsekin tuota user.name sensurointia aiemmin tässä aiheessa.
jukkah kirjoitti:
Grez: Komentoriviltä ei voi kopioida Ctrl+C:llä (liekö ollenkaan)
Hiiren sivunapilla komentiriviä -> mark -> valitsee kopioitavan teksti ja painaa uuestaa hiiren sivunappii.
Kaikkea sitä oppii... :)
hei mahtaako tällä ollla merkitystä että tiedosto on Executable Jar File?
Ei mitään merkitystä (haitallista sellaista). Rakkaalla lapsella on monta nimeä... ;)
Lisäys: Jos muuten et onnistu saamaan ohjelmaasi käyntiin ilman NetBeansia, älä jää sitä ihmettelemään / hakkaamaan päätä seinään, vaan skippaa se ja tee jotain, mikä onnistuu. Kokemuksen kartuttua kaikki alun hankaluudet tuntuvat itsestään selviltä pikkujutuilta.
joo jätetään tämä taakse ja javaa opettelemaan. :)
Tossa nyt tommonen pikku kokeilu ja onko tossa jotain virheitä tai muuta kommentoitavaa?
(toimi NetBeansissa)
import java.util.*; public class HelloWord { private static Scanner input = new Scanner(System.in); public static void main(String[] args) { System.out.println("moi"); System.out.println("nimesi?"); String nimi = input.nextLine(); System.out.println("Nimesi on "+nimi+"."); System.out.println("Ikäsi on?"); String ika = input.nextLine(); System.out.println("Ikäsi on "+ika+"."); System.out.println("Onko tiedot nyt oikein? Jos on kirjoita joo."); String kylla = input.nextLine(); if (kylla.equals("joo")){ System.out.println("Eli nimesi on "+nimi+" ja ikäsi on "+ika+"."); } else { System.out.println("Eikö?"); } } }
Jeps, ei moittimista.
Pari vinkkiä: Koodin luettavuutta saat parannettua huomattavasti ja helposti käyttämällä tyhjiä rivejä erottamaan kokonaisuuksia. Tässä tapauksessa esim. nimeen ja ikään liittyvien rivien väliin voisi laittaa yhden tyhjän rivin. Lisäksi (mikäli et jo tiedä) Alt+Shift+F on tehokas apulainen.
Tähän tapaan?
import java.util.*; public class HelloWord { private static Scanner input = new Scanner(System.in); public static void main(String[] args) { System.out.println("moi"); System.out.println("nimesi?"); String nimi = input.nextLine(); System.out.println("Nimesi on "+nimi+"."); System.out.println("Ikäsi on?"); String ika = input.nextLine(); System.out.println("Ikäsi on "+ika+"."); System.out.println("Onko tiedot nyt oikein? Jos on kirjoita joo."); String kylla = input.nextLine(); if (kylla.equals("joo")){ System.out.println("Eli nimesi on "+nimi+" ja ikäsi on "+ika+"."); } else { System.out.println("Eikö?"); } } }
Niin sitä pitää, laitoit sen toisenkin tyhjän rivin (muitakin voisi olla riippuen mielipiteestä => eivät ole pakollisia), vaikka en sitä suoraan sanonutkaan!
Voit siirtyä seuraavaan harjoitukseen... :)
Hei!
Tuli mieleen että miten saa putsattua näytön sillen että kaiki mitä ohjelma on sinne kirjoittanut lähtee näkyvistä? (Cleans screen)
Sitten on semmonen ktsymys että miten saa ohjelan niin että se odottaa että sen käyttäjä painaa jotain näppäintä ennen kun jatkaa esim: enter?
Ja kolmas viimeinen että miten saa niin että ennen seuraavaa komentoa odottaa tietyn ajan esim: 1sekuntti?
Jos jossain on listaa tämmösistä niin vois laittaa linkinkin.
Tossa tuli vaan mieleen kiitos jo etukäteen. :)
jokunen1 kirjoitti:
Tuli mieleen että miten saa putsattua näytön sillen että kaiki mitä ohjelma on sinne kirjoittanut lähtee näkyvistä? (Cleans screen)
Tämän mukaan seuraava toimii Linuxissa muttei Windowsissa.
System.out.print("\f");
jokunen1 kirjoitti:
Sitten on semmonen ktsymys että miten saa ohjelan niin että se odottaa että sen käyttäjä painaa jotain näppäintä ennen kun jatkaa esim: enter?
Se on hyvin yksinkertainen (varsinkin enterille).
// Aiemmin näin: Scanner lukija = new Scanner(System.in); lukija.nextLine(); // Odotetaan seuraavaan enteriin asti.
jokunen1 kirjoitti:
Ja kolmas viimeinen että miten saa niin että ennen seuraavaa komentoa odottaa tietyn ajan esim: 1 sekuntti?
Tämä vaatii kenties vähän miettimistä.
try { // Ainoa oleellinen rivi on seuraava. Thread.sleep(1000); // 1 s = 1000 ms } catch (InterruptedException ex) { // Jotain meni pieleen... }
Java vaatii tässä kohti virheenkäsittelyn. Riittää, että kirjoitat vain Thread.sleep(1000);
. NetBeans antaa punaisen lampun rivin alkuun => napsauta sitä ja valitse "Surround Statement with try-catch".
Lisäys: Niin ja sleeppiä ei suositella käytettävän pääsäikeessä (säie, joka kutsuu mainia). Sitä tarvitaan yleensä animaatioissa, jolloin käytetään toista säiettä. (Pysyt samassa säikeessä, kunnes erikseen luot ja käynnistät uuden; ne eivät ole ihan ensimmäisiä ohjelmoinnin perusasioita.)
Ihan mielenkiinnosta. Miksi pääsäiettä ei saa nukuttaa? Entä jos on vain yksi säie? Silloin ei varmaan ole mitään ongelmaa? Vai onko?
Koska se keskeyttäisi koko ohjelman toiminnan, esim. GUI-ohjelmissa koko käyttöliittymän. Jos se on haluttua niin miksei, mutta yleensä säikeiden kanssa näin ei ole, tästä johtuen NetBeanssikin aina huomauttaa asiasta.
Entä jos on windows?
Monta erilaista ehdotusta löytyi, mutta yksikään ei toiminut Win7:llä. :(
Jos puhutte siis komentorivin tyhjentämisestä, niin kävisikö vaikka
Runtime.getRuntime().exec("cls");
näin? (toi aika juttu)
public static void main(String[] args) { System.out.println("moi"); try { Thread.sleep(1000); System.out.println("nimesi?"); String nimi = input.nextLine(); System.out.println("Nimesi on "+nimi+"."); System.out.println("Ikäsi on?"); String ika = input.nextLine(); System.out.println("Ikäsi on "+ika+"."); System.out.println("Onko tiedot nyt oikein? Jos on kirjoita joo."); String kylla = input.nextLine(); if (kylla.equals("joo")){ System.out.println("Eli nimesi on "+nimi+" ja ikäsi on "+ika+"."); } else { System.out.println("Eikö?"); } } catch (InterruptedException ex) { Logger.getLogger(HelloWord.class.getName()).log(Level.SEVERE, null, ex); } } }
Kyllä se toimii, mutta säädä sitä vielä.
Poikkeustenkäsittelystä mainitsen sen verran, että jätä vain sleep-rivi try-lonkon sisään ja siirrä kaikki muut rivit try-lonkon sisältä catch-lohkon perään. Jos nimittäin tapahtuisi poikkeus sleepissä, jäljellä olevat try-lohkon rivit skipattaisiin, eli ne jäisivät suorittamatta. Sehän ei ole tarkoitus, vaan ennemmin niin, että jos sleep ei onnistu sekunnin mittaisena, ohjelma jatkuu jo aikaisemmin.
Sitten toinen asia. Koodisi ei ole formatoitua, eli konemuotoiltua. Tuota koodia oli aika hankala lukea, joten yritä tajuta tämä helppo tapa, jolla siitä saa lukukelpoisen.
1. Paina koodin päällä hiiren oikeaa näppäintä => aukeaa pikavalikko.
2. Valitse Format. Jos et löydä sitä valikosta, kokeile ensimmäistä kohtaa toisessa kohdassa koodia.
Huomaat, että koodisi muuttuu. Temppu ei kadota mitään kohtaa koodistasi, vaan tekee siitä helpommin luettavan ja systemaattisen.
Kokeilepa liittää alla oleva koodi mainin sisään ja aja sille formaatti myös.
int luku1=2;int luku2=5;int summa=luku1+luku2;System.out.println(summa);
Tuosta koodista ei heti huomaa tuollaisenaan, mitä se tekee. Mutta kun ajat sille formaatin, idea valkenee heti.
Ps. Formaattia kannattaa käyttää myös aina, kun kopioi jotain vaikka täältä Ohjelmointiputkasta.
Toi lohko juttu meni vähän ohi:
Poikkeustenkäsittelystä mainitsen sen verran, että jätä vain sleep-rivi try-lonkon sisään ja siirrä kaikki muut rivit try-lonkon sisältä catch-lohkon perään. Jos nimittäin tapahtuisi poikkeus sleepissä, jäljellä olevat try-lohkon rivit skipattaisiin, eli ne jäisivät suorittamatta. Sehän ei ole tarkoitus, vaan ennemmin niin, että jos sleep ei onnistu sekunnin mittaisena, ohjelma jatkuu jo aikaisemmin.
Että miten se koodi pitäisi muotoilla että toimis esi merkki?
Mutta ton koodin ymmärsin kyllä oon lukenut siitä jo. Nyt tuli muuten formatoitua (miten se kirjoitetaan) kone ja on ollut kiire mutta nyt näyttäs olevan aikaan niin päätin taas palata ohjelmoinnin saloihin. :D
Lisäys:
yritän suorittaa java ohjelmaa ja se ei toimi vieläkään avasin sen notebadilla ja tuli sekasotkua.
Ei niitä jar-faileja kuulukkaan avata millään tekstieditorilla. Jos haluat muokata ohjelmaa, muokkaa java-tiedostoja ja pakkaa uudelleen jarriksi.
Ok mutta miten ton tiedoston oikein saa toimimaan.
Zippaa se koko projekti, ja laita johonkin jakoon tai lähetä vaikka sähköpostilla, niin katsotaan, missä vika piileskelee.
Jos tajusin, mitä ajat takaa try-jutun kanssa, niin esimerkkikoodi menee näin:
String teksti = "123"; try { int luku = Integer.parseInt(teksti); // Tässä kohti voidaan olettaa, että tekstin muuttaminen luvuksi onnistui. System.out.println("Luku oli: " + luku); } catch (NumberFormatException numberFormatException) { // Tässä kohti voidaan olettaa, että tekstin muuttaminen luvuksi epäonnistui. System.out.println("Merkkijono oli: " + teksti); } // Tässä kohti ei ole enää väliä parsimisen onnistumisella. System.out.println("Hei, hei.");
========================
BUILD OUTPUT DESCRIPTION
========================
When you build an Java application project that has a main class, the IDE
automatically copies all of the JAR
files on the projects classpath to your projects dist/lib folder. The IDE
also adds each of the JAR files to the Class-Path element in the application
JAR files manifest file (MANIFEST.MF).
To run the project from the command line, go to the dist folder and
type the following:
java -jar "JavaApplication1.jar"
To distribute this project, zip up the dist folder (including the lib folder)
and distribute the ZIP file.
Tämä löytyy dist kansi osta mistä jar tiedostokin selven tääkö tämä jotain?
Notes:
* If two JAR files on the project classpath have the same name, only the first
JAR file is copied to the lib folder.
* Only JAR files are copied to the lib folder.
If the classpath contains other types of files or folders, these files (folders)
are not copied.
* If a library on the projects classpath also has a Class-Path element
specified in the manifest,the content of the Class-Path element has to be on
the projects runtime path.
* To set a main class in a standard Java project, right-click the project node
in the Projects window and choose Properties. Then click Run and enter the
class name in the Main Class field. Alternatively, you can manually type the
class name in the manifest Main-Class element.
Lisäys: sori toi tekstini meni tonne väliin vahingossa. Ja koneeni yrittää avata ohjelman Java(TM) Plantform SE binary eikä ilmeiseti suorittaa.
jokunen1 kirjoitti:
To run the project from the command line, go to the dist folder and
type the following:java -jar "JavaApplication1.jar"
To distribute this project, zip up the dist folder (including the lib folder)
and distribute the ZIP file.Tämä löytyy dist kansi osta mistä jar tiedostokin selven tääkö tämä jotain?
Tuo tarkoittaa, että "siirry komentorivillä dist-hakemistoon ja aja tämä komento, niin ohjelmasi suoritetaan". Komentorivin löydät Windows-valikon Apuohjelmista tai kirjoittamalla Windows-valikon Suorita-tekstilaatikkoon cmd ja painamalla Suorita.
Komentorivillä voit siirtyä tuohon hakemistoon cd-komennolla (tulee sanoista change dir eli vaihda hakemistoa) näin:
cd C:\Users\SUNKONEENKÄYTTÄJÄNIMI\Documents\NetBeansProjects\eka\dist\
Muista korvata tuo koneen käyttäjänimi oikealla hakemiston nimellä!
Kun olet siirtynyt komentorivillä oikeaan hakemistoon, ajat vain tuon ehdotetun komennon:
java -jar "JavaApplication1.jar"
Windowsista ei yleensä kannata komentoriviohjelmia ajaa tuplaklikkaamalla .jar-kuvaketta, koska ohjelman loppumisen jälkeen komentorivi häviää näkyvistä eikä mahdollisia virheilmoituksia ehdi nähdä välähtävästä ruudusta. (Tämänhän jo taisit itsekin huomata.)
Joo pitää testata kun menen tietokoneelleni yritin jo kyllä mutta väärällä komennolla. :)
Lisäys:
Meinaa että määritettyä polkua ei löydy. kun laitoin suoraa se herjaa: Unable to access jarfile JavaApplication7 /mikä sen nimi onkaan.
Käytän sitten Windows XP jos se vaikuttaa ja komentorivin [versio 5.1.2600]
Mistä voi tarkistaa sitten äyttäjä nimen?
Onko se komentorivin aina konennon edessä?
Ja voinko yrittää eri paikasta/hakemistosta suorittaa sen?
Ja onko tossa hakemistossa toi (eka) sen kansion nimi missä on kansio (dist)?
Kokeiltu on montakertaa.
jokunen1: Testasin lähettämääsi ohjelmaa, eikä siinä ollut mitään vikaa.
Komentorivi antaa virheilmoituksen, jos kirjoitat yhdenkin merkin väärin. Kirjoita siis komennot tarkasti, esim. niin kuin Cornix edellä opasti.
Homma toimii XP:ssä ihan hyvin. Ja käyttäjänimesi löydät komentoriviltä komennon edestä.
Ohjelman voi suorittaa (Java(TM) Plantform SE binary on virtuaalikone, eli suorittava ohjelma) mistä tahansa kansiosta, mutta jos et ole samassa kansiossa jar-tiedoston kanssa, pitää java-komentoon laittaa joko suhteellinen tai absoluuttinen polku tiedostonimen eteen.
Jos et saa hommaa millään toimimaan, niin lunttaa tästä :)
java -jar "Documents\NetBeansProjects\JavaApplication7\dist\JavaApplication7.jar"
Sitten se sanoo: Unable to acess jarfile Documents\NetBeansProjects\JavaApplication7\
Minulla on sellanen tunne että keskustelun aloittaja on erittäin taitava Trolli ja muut ei ole sitä vielä huomanneet :D
:D En trollaa oikeasti. Muuten kyllä toi minecraft suostuu vaivatta toimimaan tupla likkauksella vaikka se on jar.
Lisäys: Pitää varmaan kokeilla toisella koneella kun toimi jukahillakin. Tupla lkatessa kone antaa myös varoitus äänen.
Ehkä sun pitää laittaa siihen sen jarrin oikea sijainti...
No niin edistystä ilmeiseti löysi tiedoston pielessä oli se että mulla ei ole kansiota documents vaan Omat tiedostot. Nyt se vuorostaan heittää:Exception in thread "main" java.lang.UnsupportedClassVersionError: javaapplicati
on7/JavaApplication7 : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: javaapplication7.JavaApplication7. Program will e
xit.
Sulla on JDK 7, mutta JRE 6. Päivitä se siis uusimpaan versioon.
Toistaiseksi fiksumpi ratkaisu olisi ehkä säätää projekti niin, että se toimii JRE 6:lla, koska monella peruskäyttäjällä on luultavasti edelleen se.
Milloinkohan JRE 7 -päivitys tulee kaikille?
Se on jo olemassa: http://java.com/en/download/index.jsp.
Joo, mutta jos sulla on koneella JRE 6, niin eihän se päivitä sitä seiskaan vaan seuraavaan kutosen versioon (32 tällä hetkellä vissiin). Vai?
Uskokaa tai älkää mutta VIHDOIN odotettu output! Eli toisin sanoien ohjelmani toimi.
Lisäys: Kiitos kaikille jotka auttoivat. :)
luin tuolta ohjelmointiwikistä että java on yleensä netti sovelluksien tekoon. Niin miten saa koodini nettiin ja miten sen saan sen siellä toimimaan?
Sun pitää luoda appletti.
Ps. Ihan yhtä hyvin sillä voi tehdä työpöytäsovelluksia...
jokunen1 kirjoitti:
luin tuolta ohjelmointiwikistä että java on yleensä netti sovelluksien tekoon.
On vai? Enpä ole tiennyt.
"Macro kirjoitti:
Ps. Ihan yhtä hyvin sillä voi tehdä työpöytäsovelluksia...
Javaa voi käyttää lähes missä vain ts. kaikilla niillä alustoilla, joille JVM on käännetty, tarkoittaen sitä, että netti- tai työpöytäsovellukset ovat vain pieniosa siitä kaikesta...
Macro kirjoitti:
Sun pitää luoda appletti.
Javaa käytetään nykyään useimmiten nimenomaan palvelinpuolella.
No voinhan tehä selaimeen toimivan ohjelman. Että miten sitten saan toimimaan koodin selaimessa?
Jos sä nyt nimenomaan haluat Javalla tehdä selaimessa toimivan ohjelman, niin silloin luot sen Appletin. Itse en kylläkään Appletteja käyttelisi, koska ne aiheuttavat ongelmia ja toisaalta näkisin, että Javan hyvyys tulee esille nimenomaan palvelin puolella.
No mitä niiden applettien suurimpia ongelmia on? Ja mitä ne vahvuudet palvelin puolella on? Mitä sillä tarkoitat?
Itse pidän huonoimpina puolina sitä, että käyttäjä joutuu (selaimen lisäksi) asentamaan JRE:n ja pitämään sen päivitettynä.
Jos käyttäjä noudattaa tietoturvapolitiikkaa, jossa hänen pääselaimessaan ei ole Javaa asennettuna, joutuu hän käynnistämään Javakäyttöön tarkoitetun selaimen. Joka on ihan OK, jos appletti tarjoaa sellaista, jota ei voitaisi kohtuudella toteuttaa selaimiin sisältyvillä toiminnoilla*. Jos taas appletti on joku suht turha, niin voi jäädä käynnistämättä.
* Selainten tarjotessa yhä paremmat työkalut vakiona, on aina vaan vähemmän asioita joihin on oikeasti pakko olla appletti.
No miten noi java sovellukset on toiminut pelkän javan avuin? Että onko ne tehty eri tavalla
jokunen1 kirjoitti:
No miten noi java sovellukset on toiminut pelkän javan avuin? Että onko ne tehty eri tavalla
Häh? Mitähän sä nyt mahdatkaan kysyä? Tietenkin Javalla pystyy tekemään ohjelmia, mitkä toimivat pelkällä Javalla, joten en nyt ymmärrä varsinaista kysymystä.
Edit. Siis Javalla voi tehdä komentoriviohjelmia, servlettejä, middlettejä, appletteja, portletteja ja vaikka kuinka paljon muutakin. Sovelluksen tyyppi määrää sen, että mitä kirjastoja käytetään ja mitä luokkia periytetään. Tyypillistä kuitenkin on se, että jokaisella erityyppisellä sovelluksella on jonkinlainen kontrolleri-luokka, joka ohjaa sen sovelluksen toimintaa, esim. jokainen appletti periyttää luokan Applet ja saa käyttöönsä init-, run- ja destroy-metodit, joihin varsinainen ohjelman logiikka sijoitetaan.
Osut aika lailla oikeaan. Minkä lainen tämä ohjelma on haluaisin tehdä tämän tyypisen siis selaimeen upotetun ohjelman.
Jos katsot sivun lähdekoodia, siellä on tällainen tagi:
<applet id="dust" width="400" height="456" archive="/javagame/dust/9.1.4/dust.jar" code="dust.class">
Kyseessä on Javalla tehty applet. Ohjelman käännetty koodi on tiedostopaketissa dust.jar, johon viitataan archive-ominaisuudella. Voit itse tehdä samanlaisia ohjelmia sinulla jo olevilla työkaluilla, jos tutustut appletien tekoon sopivan oppaan avulla. Jos olet jo lukenut virallisia nykyään Oraclen sivuilla asuvia Java-oppaita, sieltä löytyvä applet-opas on varmasti hyvä tapa aloittaa.
http://docs.oracle.com/javase/tutorial/
Jos et vielä ole lukenut näitä, kannattaa ehkä katsoa saman sivuston ihan alkeista alkavia oppaita ensin, ja sitten siirtyä näihin hieman edistyneempiin aiheisiin. Eräät peruskäsitteet pitää olla hallussa applet-asioista luettaessa. (Jos luet mieluummin muunlaisia oppaita, kerro minkälaisia haluaisit lukea.)
Appleteilla on omat ongelmansa. Niin kuin Grez jo sanoi: kaikki eivät voi ajaa tai suostu ajamaan Java-ohjelmia selaimessaan.
Sinulla olisi muitakin vaihtoehtoja tehdä selaimessa pelattavia pelejä, mutta jos nyt haluat Javaa opetella ja ohessa tehdä pieniä appletteja, on se varmasti ihan mukavaa puuhaa. Opettele kuitenkin muitakin tapoja käyttää Javaa, niin siitä on sinulle enemmän hyötyä :)
Joo kitos piitää ruveta noistakin lukemaan nyt kun on lomalla aikaakin. :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.