Javan ympäristömuuttujien asettaminen

Hei, aloitteleva koodari kysyy neuvoa. Tein ohjeiden mukaan helloworld -ohjelman, joka kääntyy editorissa ihan oikein. Nyt kun yritän ajaa ohjelmaa komentoriviltä, saan virheilmoituksen " Could not find or load main class HelloWorldApp". OIen oikeassa kansiossa ja käytän oikeaa tiedostonimeä tiedoston ajamiseen (java HelloWorldApp, koodissa luokan nimi määritelty "public class HelloWorldApp"). Olen kääntänyt ohjelman komentoriviltä javac-komennolla (javac HelloWorldApp.java) ja kääntäminen onnistuu (aikaleima päivittyy).

-Pitääkö JAVA_HOME olla määritelty user variableksi vai system variableksi? Sisältö pitää siis kai olla jotain tämän kaltaista C:\Program Files\Java\jdk1.8.0_231 ?

-Mihin CLASSPATH pitää olla määritelty (user vai system)? Sisältö pitäisi kai olla bin -päätteinen, eli esim näin C:\Program Files\Java\jdk1.8.0_231\bin ?

Olen buutannut konetta useaan otteeseen jne, ei muutosta. Ohjeet netissä vähän sekavia, sijoitettu eri tavalla userille tai systeemille, jossain on perässä bin, toisissa ei jne..

Osaisiko joku auttaa?

14

1038

    Vastaukset 14

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Seuraa vain ohjetta osoitteessa

      https://www.thecoderworld.com/how-to-setup-environment-variables-for-java-in-windows-11/

      niin homma hoituu ja elämä taas hymyilee. 😊

      • Anonyymi

        Windowsissa ei mikään toimi
        Kuka idiootti on keksinyt windowsin jossa mikään ei toimi ja äänissä järkyttävä latessi ja pelatessa kuva sumentuu !


      • Voi kun hymyilisikin :( Laitoin javan bin -kansion polun tuonne system muuttujiin aivan ensimmäiseksi, eikä silti toimi. Buuttasin koneenkin, mutta samaa virhettä herjaa.


    • Anonyymi

      Selkeä oppimiskeskus löytyy w3schoolista:

      https://www.w3schools.com/java/java_getstarted.asp

      Tuskin mikään enää voi mennä vikaan.

      Psst, mikäli ympäristömuuttujiesi sijaintipolkuun sisältyy välilyöntejä, niin voit joutua käyttämään lainausmerkkejä polun määrityksessä.

    • Anonyymi

      Katso kuvasta esimerkkiasetus, joka todistetusti toimii.

      https://ibb.co/r5dHbQz

      Siis systeemipuolelle ja heti jonon alkuun.

    • Kiitos tosiaan kaikista neuvoista tähän asti. Näistä ei kuitenkaan ollut tässä tapauksessa apua. Useiden buuttausten jälkeen herjaa samaa virhettä, vaikka tuo Javan bin- kansio tosiaan on Path:ssa ensimmäisenä eikä polun nimessä ole välilyöntejä tms. Käänsin myös ohjelmaa uudestaan, tälläkään ei ollut merkitystä.

      Tuleeko näihin ympäristömuuttujiin määritellä jotain muutakin, esim JAVA_HOME? Jonkun ohjeen mukaan piti, mutta se ei oikein selvinnyt pitikö tämä määritellä userille vai systemille. Poistin nämäkin määritykset varmuuden vuoksi, mutta ei mitään vaikutusta.

      Hermo meneeee :|

    • Anonyymi

      Jos sinulla toimii tuo "Main.java" esimerkki tuolta: https://www.w3schools.com/java/java_getstarted.asp

      Kiinnitä huomiota kirjainkokoon omassa ohjelmassasi ja unohda ne ympäristömuuttujat.

      Huomaa jos tiedoston nimi "Main.java" niin luokkanimi on
      public class Main
      ei näin
      public class main

    • Anonyymi

      On vaikea sanoa tarkkaa syytä virheilmoitukseen, koska se voi olla monista eri tekijöistä johtuva. Yleisesti ottaen, tämän virheen aiheuttaja voi olla se, että:

      Java-tiedostosi ei ole olemassa
      Java-tiedostosi ei ole käännetty oikein
      Tiedostonimessäsi on virhe
      Java-versiosi ei ole sama kuin ohjelmointikielessäsi käytetty
      Java-luokkasi ei ole määritelty oikein

      On myös mahdollista, että Java-tiedostosi ei ole oikeassa kansiossa ja et ole käyttänyt oikeaa tiedostonimeä tiedoston ajamiseen.

      JAVAHOME pitää määritellä System Variableksi ja sen sisältö pitää olla JDK:n paikka, esimerkiksi C:\Program Files\Java\jdk1.8.0231. CLASSPATH taas pitää määritellä User Variableksi ja sen sisältö on JDK:n bin-kansio, eli C:\Program Files\Java\jdk1.8.0_231\bin.

    • Anonyymi

      Mikä Windowsin versio koneessasi on, tai mikä käyttis ylipäätään?

      Viimeisintä Javaa Oraclen

      https://www.oracle.com/java/technologies/downloads/#jdk19-windows

      sivulta ladatessa valitsithan _bin.msi-asennustiedoston sillä samalla bittisyydellä (32/64) mikä koneesi järjestelmätyyppi on?

      Pystytkö ottamaan kuvan siitä ympäristömuuttujien toimimattomasta näkymästä ja lataamaan sen näytille johonkin ilmaiseen (https://imgbb.com/) kuvien jakopalveluun?

      ---

      Ekaa kertaa alustaa rakentaessa ei kannata itse säätää asennuspolkuja, vaan antaa asennuksen rullata ihan oletusarvoilla joita asennusohjelma käyttää kun painelee next-next jne.

      Oletuksena asennustiedosto käyttää ainakin polkuja

      C:\Program Files\Java\jdk-19\bin
      C:\Program Files\Common Files\Oracle\Java
      C:\ProgramData\Oracle (piilotettu kansio)

      ja niissä on välilyönti eli olet ilmeisesti asentanut Javan johonkin toisaalle kun mainitsit edellä ettei polussa ole välilyöntiä. Useimmiten välilyönnistä sanojen väleissä ei ole harmia, mutta poikkeuksiakin on ja joskus polku pitää ilmoittaa sitaateissa.

      PeeÄs-1, muista varmistaa että se Main.java tiedosto oikeasti on nimeltään "Main.java" eikä esimerkiksi "Main.java.txt" eli varmista että tallennuksen muoto on "Kaikki tiedostot". Toinen asia mikä voi johtaa ongelmiin / virheilmoituksiin on se, että tiedosto tallennetaan koodausmuodossa "UTF-8 ja BOM". Ongelmat vähenee kummasti kun vaihtaa koodauksen muotoon "UTF-8" eli tallentaa ilman tekstinkäsittelyohjelmien käyttämiä piilomerkkejä. Katso kuva:

      https://i.ibb.co/QFGXNxY/java-tiedoston-tallennus.jpg

      PeeÄs-2, usein koneen uudelleen käynnistäminen alkaa ärsyttämään ja siksi ainakin itse suosin nopeampaa tapaa ottaa vaikkapa päivitetyt ympäristöasetukset käyttöön: avaa Tehtävienhallinta -> etsi prosessinäkymästä Resurssienhallinta ja aktivoi se hiirellä -> Käynnistä uudelleen oikeaan alakulmaan ilmestyneestä painikkeesta.

    • Anonyymi

      No niin syy selvisi:

      Tein vielä fakkiintuneena uuden projektin, jonne heitin tuon esimerkin main -koodin, vaikka se oli minusta tismalleen samannäköinen. Syy oli alkuperäisen tiedoston alkuun automaattisesti generoitu "package" -määritelmä. Tässä käytetty samoja sanoja kuin polussa on kansioita, mutta en tosiaan tiedä tästä packagesta yhtään mitään. Uuteen testitiedostoon en sitä laittanut (koska vain copypastesin) ja nyt kaikki toimiikin :o

      Osaako joku vielä selittää miten tuo package mahdollisesti rikkoi tämän ohjelman toiminnan?

      Onko muuten haittaa jos JDK:n ja JRE:n versionumerot ovat eri? Ympäristömuuttujissa huomasin olevan näin:
      C:\Program Files (x86)\Java\jre1.8.0_121\bin\client
      C:\Program Files\Java\jdk1.8.0_231\bin

      Ja kiitos ihan tuhannesti kaikille avusta! Onko olemassa jokin muu parempi foorumi kysellä tarvittaessa apuja koodaamisessa ihan suomeksi? :)

      • Anonyymi

        Suosittelen kirjautumaan foorumiin osoitteessa

        https://bbs.io-tech.fi/

        Siellä on jo aktiivinen "Pieniä kysymyksiä ohjelmoinnista" -osasto eli eiköhän sieltä aina löydy joku expertti olipa ongelmakohta mikä tahansa. 😉


      • Anonyymi

        "Osaako joku vielä selittää miten tuo package mahdollisesti rikkoi tämän ohjelman toiminnan?"

        Ei rikkonut, olet valehtelija.


      • Anonyymi
        Anonyymi kirjoitti:

        Suosittelen kirjautumaan foorumiin osoitteessa

        https://bbs.io-tech.fi/

        Siellä on jo aktiivinen "Pieniä kysymyksiä ohjelmoinnista" -osasto eli eiköhän sieltä aina löydy joku expertti olipa ongelmakohta mikä tahansa. 😉

        Älä suosittele, sillä on jo tunnukset siellä, eikä kukaan näytä olevan mielissään sen kirjoittelusta.


    • Anonyymi

      JRE on tarkoitettu heille, jotka eivät itse luo vaan ajavat toisten kirjoittamia JAVA-ohjelmia.

      JDK on tarkoitettu sinulle, jotka käärivät hihat ja alkavat luomaan jotain ihan uutta.

      Versionumeroilla ei ole sinällään mitään väliä kunhan pitää huolen että kaikki versiot ovat uusimpia mitä on ladattavissa. Kilpajuoksu tietoturva-asioissa pitää huolen siitä, että päivityksiä tulee ja niistä on syytä ottaa koppi mahdollisimman pian.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Nyt se syksy on sitten alkanut

      Esimerkiksi tänään sataa aamusta iltaan, ja nytkin.
      Maailman menoa
      68
      1095
    2. Minä en ole koskaan

      Rakastanut ketään toista yhtä paljon kuin sinua
      Ikävä
      98
      1054
    3. Tiesitkö? Jorma Uotisen EX-rakas on Helena Lindgren - Nämä ovat välit nyt: "Me ollaan..."

      Jorma Uotinen ja Helena Lindgren olivat avoliitossa v. 1982-1999. Pariskunta oli aikansa näyttävä julkkispari, missä i
      Kotimaiset julkkisjuorut
      22
      912
    4. Olet nainen ollut vaikein rasti

      Eniten olet tunteitani myllännyt ja niitä kuluttanut, ja tuottanut. 🤔
      Ikävä
      62
      852
    5. Anteeksi J-mies

      Anteeksi että myötävaikutin siihen että rakastuit minuun, jota et voi koskaan saada. Viimeksi kun näimme ja katselimme t
      Ikävä
      124
      835
    6. Vähän pitää

      Kiusia ja näyttää
      Ikävä
      134
      817
    7. Riittääkö mahkut

      Kaivattuusi 🤭.
      Ikävä
      57
      756
    8. Kenen viisautta on ollut laittaa tie väärällä murskeella pilalle

      Kenen viisautta on ollut kun Siimeksen/Kylmänpurontie pantu pilalle kun on ajettu liian karkeaa mursketta. Rengasliikke
      Hyrynsalmi
      27
      731
    9. Kuhmolainen opettaja tuomittu vainoamisesta

      https://yle.fi/a/74-20248184 ”Kuusikymppinen kuhmolaisnainen piinasi naapureitaan lähes kahdeksan vuoden ajan. Nainen
      Kuhmo
      20
      720
    10. Taidat olla

      Luovuttanut jo minun suhteeni osalta?
      Ikävä
      45
      666
    11. Minä muistan

      Minä muistan sinut nauravana. Sellaisena, joka sai tavallisenkin hetken tuntumaan vähän kevyemmältä, kuin huoneeseen ol
      Ikävä
      47
      650
    12. Mä voisin rakastua noihin tähti silmiin

      Katseesi on niin lumoava nainen💚.
      Ikävä
      19
      617
    13. Koska Martina viettää aikaansa lapsiensa kanssa

      Äiti vaan juoksee miehen perässä Tallinnassa, Lontoossa, Turussa. Kyllä oli kätilö oikeassa, kun sanoi, että ei olisi ka
      Kotimaiset julkkisjuorut
      142
      602
    14. Ähtäri on taas TV: n ja radion ykkösuutinen

      Uusi podcast on julkaistu ja on nyt kuunneltavissa. Mot on tehnyt hyvää työtä! Mikko Savola ja kepu ei ota mitään vast
      Ähtäri
      48
      600
    15. Siinä kävi mies nyt niin että tämä ämmä muuttaa ulkomaille

      Vuonojen maa kutsuu, joten ei hätää. Et kuule minusta enää. 😂 Lycka till! Ämmä riittää.
      Ikävä
      82
      596
    16. Jos tullaan toisiamme vastaan, niin

      pitäiskö pysähtyä ja onnitella?
      Ikävä
      48
      594
    17. Mitä muuta on olemassa kuin lisääntyminen

      Jos mies ei pääse lisääntymään niin mikä hänen osansa elämässä on? mitä jää jäljelle? Hän on vain muiden palvelija kok
      Sinkut
      128
      594
    18. Voisiko vielä välillemme jotain kehittyä

      Vai heihei ja ei nähdä enää.
      Ikävä
      35
      590
    19. Elämäni biisi -paljastus: Tänä lauantaina 26.9. nämä julkkikset istahtavat sinisille sohville!

      Katsotko Elämäni biisiä? Elämäni biisi on monen suomalaisen suosikki. Vieraslista lauantaina 26.9. tarjoilee vieraita m
      Tv-sarjat
      6
      583
    20. Pahkalassa tapahtuu

      Mitäs on tapahtunut yöllä pahkalan kerrostaloilla.oli poliisia ja ambulanssia taas vaihteeksi
      Parkano
      12
      559
    Aihe