Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Java probleem märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
Psych0
HV veteran
Psych0

liitunud: 21.11.2004



Autoriseeritud ID-kaardiga

sõnum 06.03.2012 23:26:55 Java probleem vasta tsitaadiga

Tere,

Olen Javas suhteliselt algaja ning seega küsiksin abi. Mul on järgmised kolm klassi ning seda Eclipses käivitades ei juhtu lihtsalt mitte midagi. Milles asi?

Põhiklass piletiteOst
import java.util.Scanner;

public class piletiteOst
{
   public static void main(String[] args) throws Exception
   {
      saadavuseKontroll kontroll = new saadavuseKontroll();
      kontroll.piletiteArv();
      int piletiSaadavus = kontroll.getSaadavus();
      
      if (piletiSaadavus == 0)
      {
         System.out.println("Hetkel on kinos Kariibi mere piraadid, kuid piletid on kahjuks otsas.");
      }
      else
         System.out.println("Hetkel on kinos Kariibi mere piraadid ning pileteid on alles" + piletiSaadavus);
         System.out.println("Kas soovid piletit osta? (Kinnitamiseks vajuta Enter.");
         
         pauseProg();
         
         System.out.println("Sisesta piletite arv: ");
         Scanner scan = new Scanner(System.in);
         double piletiSoov = scan.nextDouble();
               
         if (piletiSoov < 0)
         {
            System.out.println("Vigane kohtade arv.");
         }
         if (piletiSoov == 0)
         {
            System.out.println("Nägemiseni!");
         }
         if (piletiSoov > piletiSaadavus)
         {
            System.out.println("Kahjuks pole nii palju pileteid. Proovi uuesti!");
         }
         else
            System.out.println("Kinnitamiseks vajuta Enter või loobumiseks tühikut.");
            pauseProg();
            System.out.println("Täname Teid ostu eest. Häid filmielamusi! ");
   }
   public static void pauseProg()
   {
      Scanner keyboard = new Scanner(System.in);
      keyboard.nextLine();
   }
}


klass saadavuseKontroll
import java.util.Scanner;
import java.io.File;

public class saadavuseKontroll
{
   private int piletiSaadavus;
   
   int getSaadavus()
   {
      return piletiSaadavus;
   }
   
   void setSaadavus(int piletiSaadavus)
   {
      this.piletiSaadavus = piletiSaadavus;
   }
   
   public void piletiteArv() throws Exception
   {
      File piletid = new File("c:/piletid.txt");
      Scanner psc = new Scanner(piletid);
      for (int i = 0; psc.hasNextLine(); i++)
      {
         setSaadavus(i + 1);
      }
   }
}


klass idPilet
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.File;

public class idPilet
{
   int id;
   int koht;
   int rida;

   public void piletiTrükk(int piletiKoht, int piletiRida) throws Exception
   {
      id = (int)Math.round(Math.random()*100000.0);
      koht = piletiKoht;
      rida = piletiRida;
      
      File idPilet = new File("c:/piletid.txt");
      
      FileWriter fw = new FileWriter(idPilet, true);
      PrintWriter out = new PrintWriter(fw);
      out.print(String.format("%05d", id) + ";");
      out.print(koht + ";");
      out.println(rida);
      out.close();
      fw.close();

      System.out.println("Teie pileti ID on: " + String.format("%05d", id));
   }
}


Tänud ette!
Kommentaarid: 61 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 57
tagasi üles
vaata kasutaja infot saada privaatsõnum
2ndalpha
HV kasutaja
2ndalpha

liitunud: 03.11.2004




sõnum 07.03.2012 00:03:33 vasta tsitaadiga

Eclipses on tegemist ikka Java projektiga? Vajutad rohelist "play" nuppu?
Kui Sa pole kindel, siis saada ekraanipilt Eclipsest.
Kommentaarid: 23 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
Psych0
HV veteran
Psych0

liitunud: 21.11.2004



Autoriseeritud ID-kaardiga

sõnum 07.03.2012 00:10:42 vasta tsitaadiga

2ndalpha kirjutas:
Eclipses on tegemist ikka Java projektiga? Vajutad rohelist "play" nuppu?
Kui Sa pole kindel, siis saada ekraanipilt Eclipsest.


Jah, java projekt ja roheline play nupp. icon_biggrin.gif
Kommentaarid: 61 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 57
tagasi üles
vaata kasutaja infot saada privaatsõnum
2ndalpha
HV kasutaja
2ndalpha

liitunud: 03.11.2004




sõnum 07.03.2012 00:23:02 vasta tsitaadiga

Konsool ei näita midagi?
Window->Show View->Console

JDK on olemas ja build libraryte all? Java builder on lubatud?
Kommentaarid: 23 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
Psych0
HV veteran
Psych0

liitunud: 21.11.2004



Autoriseeritud ID-kaardiga

sõnum 07.03.2012 07:59:11 vasta tsitaadiga

2ndalpha kirjutas:
Konsool ei näita midagi?
Window->Show View->Console

JDK on olemas ja build libraryte all? Java builder on lubatud?

JDK on olemas, kuid kuidas ma saan ülejäänud kahte kontrollida?

Olen varem ka selliseid lihtsamaid asju teinud Eclipsega, siis on töötanud.
Kommentaarid: 61 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 57
tagasi üles
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 07.03.2012 09:11:07 vasta tsitaadiga

Siiski - alustaks sellest, et kas Console aknas ei jookse mingeid vigu või asju? icon_smile.gif
_________________
Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
Psych0
HV veteran
Psych0

liitunud: 21.11.2004



Autoriseeritud ID-kaardiga

sõnum 07.03.2012 09:19:16 vasta tsitaadiga

Fukiku kirjutas:
Siiski - alustaks sellest, et kas Console aknas ei jookse mingeid vigu või asju? icon_smile.gif

Ei jookse, kuid on näha, et midagi ta mõtleb (programm jääb nö tööle).
Kommentaarid: 61 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 57
tagasi üles
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 07.03.2012 09:46:33 vasta tsitaadiga

Siis tundukse, et su programm ikkagi töötab, aga ei tee, seda, mida sa ootad. Kui tal oleks muresid Java koodi jooksutamisega, siis see peaks mingites veateadetes väljenduma. Kahjuks mul pole hetkel JDK-ga arvutit ligi, et ise su koodi katsetada. Soovitan hakata kasvõi iga rea vahele toppima sysout lauseid, et näha, kaugele programm jõuab ja mida ta teeb. Alustuseks nt pane main meetodi esimesele reale mingi väljatrükk, et näha, kas see üldse käivitub.

PS. Vii ennast kurssi Java nimetamisreeglitega. icon_smile.gif

PPS. Kuigi Java lubab täpikuid igal pool nimedes, siis mina enda meelerahu huvides igaks juhuks neid pigem ei kasutaks - varem või hiljem võib sellest ikka mingi ikaldus sündida. icon_razz.gif

_________________
Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
Mefistofeles
HV kasutaja

liitunud: 06.11.2003



Autoriseeritud ID-kaardiga

sõnum 07.03.2012 10:24:40 vasta tsitaadiga

Mis sul piletid.txt sisu muidu on?

Mulle tundub, et ta jääb sul



   public void piletiteArv() throws Exception
   {
      File piletid = new File("c:/piletid.txt");
      Scanner psc = new Scanner(piletid);
      for (int i = 0; psc.hasNextLine(); i++)
      {
         setSaadavus(i + 1);
      }
   }

sisse loopima.


edit/

Kui sul piletid.txt'is lihtsalt ridade arvu järgi otsustakse palju pileteid järgi, siis töötab nii:


   public void piletiteArv() throws Exception
   {
      Scanner s = null;
       try {
           s = new Scanner(new BufferedReader(new FileReader("C:/piletid.txt")));
           for (int i=1; s.hasNext(); i++) {
               s.next();               
               setSaadavus(i);
           }
       } finally {
           if (s != null) {
               s.close();
           }
       }
   }
Kommentaarid: 17 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 17
tagasi üles
vaata kasutaja infot saada privaatsõnum
Psych0
HV veteran
Psych0

liitunud: 21.11.2004



Autoriseeritud ID-kaardiga

sõnum 14.04.2012 17:37:38 vasta tsitaadiga

protected String[][] kohad = new String[40][3];
protected String filmiNimi;
protected int vabadKohad;

public int piletid(String filmiNimi) throws Exception {
   Scanner s = new Scanner(new BufferedReader(new FileReader("c:/Filmid/" + filmiNimi + ".txt")));
   int i = 0;

       while (s.hasNext()) {
           String line = s.nextLine();
           String[] koht = line.split(";");
           kohad[i] = koht;
           i++;
           if (koht[2] == "vaba") {
              System.out.println(koht[2]);
              vabadKohad++;
           }
       }
   return vabadKohad;


Ei tööta vabadKohad++, kuna tema jaoks ei ole koht[2] == "vaba".

Tekstifailis on kohad nii:
1;1;vaba
2;1;vaba
3;1;vaba
4;1;vaba

Kui while'i sisemus muuta selliseks:
while (s.hasNext()) {
   String line = s.nextLine();
   String[] koht = line.split(";");
   kohad[i] = koht;
   i++;
   System.out.println(koht[2]);
}

Siis väljastab ilusti:
vaba
vaba
vaba
vaba

Keegi oskab öelda, kuidas seda viga parandada?
Kommentaarid: 61 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 57
tagasi üles
vaata kasutaja infot saada privaatsõnum
HellWalKeR
HV kasutaja
HellWalKeR

liitunud: 20.11.2006




sõnum 14.04.2012 17:55:23 vasta tsitaadiga

Kas if (koht[2] == "vaba") ei peaks olema mitte if (koht[2].equals("vaba"))?
Kommentaarid: 5 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
Psych0
HV veteran
Psych0

liitunud: 21.11.2004



Autoriseeritud ID-kaardiga

sõnum 14.04.2012 17:59:38 vasta tsitaadiga

HellWalKeR kirjutas:
Kas if (koht[2] == "vaba") ei peaks olema mitte if (koht[2].equals("vaba"))?

Peab tõesti, aitäh!
Kommentaarid: 61 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 57
tagasi üles
vaata kasutaja infot saada privaatsõnum
PitBull
HV kasutaja

liitunud: 31.10.2003




sõnum 15.04.2012 00:16:48 vasta tsitaadiga

Psych0 kirjutas:
HellWalKeR kirjutas:
Kas if (koht[2] == "vaba") ei peaks olema mitte if (koht[2].equals("vaba"))?

Peab tõesti, aitäh!

Veel parem "vaba".equals(koht[2]), jääb ehk mõnigi NPE saamata.
Kommentaarid: 16 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 16
tagasi üles
vaata kasutaja infot saada privaatsõnum
Vermon
Kreisi kasutaja
Vermon

liitunud: 04.12.2003




sõnum 16.04.2012 15:30:28 vasta tsitaadiga

Saamata jäänud NPE ei ole alati hea, mida varem bugine kood feilib seda parem icon_cool.gif
Muidugi oleneb alati konkreetsest juhust.
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 12
tagasi üles
vaata kasutaja infot saada privaatsõnum
Psych0
HV veteran
Psych0

liitunud: 21.11.2004



Autoriseeritud ID-kaardiga

sõnum 13.05.2012 23:43:19 vasta tsitaadiga

Kas keegi oskab aidata töötava .jar faili tegemisega? Ei saa hakkama kuidagi.
http://www.upload.ee/files/2342362/Cinamon.rar.html - nimi on naljaga pandud.
Ühesõnaga eclipses eksportides Java - Runnable JAR file ei juhtu faili käivitades midagi.
Lihtsalt JAR file'na eksportides tuleb veateade "Failed to load Main-Class manifest attribute from C:\blabla..".
Olen proovinud seda manifesti muuta, kuid ei ole tööle saanud. Jah, jätsin tühja rea lõppu.

Edit: Ja leidsin ka paranduse - java6 tuli uninstallida.
Kommentaarid: 61 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 57
tagasi üles
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 14.05.2012 08:32:14 vasta tsitaadiga

Ehk siis lahendasid probleemi kirvega.

Proovisin hommukul ka oma arvutis käivitada - sain ilusti tala "unsupported major.minor version 51.0". Sisuliselt tähendab see seda, et su klassid olid kompileeritud uuema Java versiooni jaoks, kui see Java, mis sul käsurealt vaikimisi käivitub. Kui Java 6 uninstall asja sinu jaoks lahendas, siis ilmselt on sul Eclipse sättungites pandud vaikimisi (või projektipõhiselt) Java 7 target release'ks. Selle kannatab ilmselt suurema vaevata ka kuhugi Java 5 kanti sättida, mis igas normaalses masinas olemas peaks olema ja ei tohiks väga probleeme tulla, et mingeid asju kasutada ei saa vms.

_________________
Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Java probleem
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.