Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Ciao.
    ho le seguenti classi per la gestione di un array FIFO, e ho costituito un package nel seguente modo: questo file l'ho chiamato FIFO.java e l'ho messo nella stessa cartella dove sarà presente il file ProvaFifo.java che lo utilizzerà.

    codice:
    /**
     * @(#)FIFO.java
     *
     *
     * @author 
     * @version 1.00 2012/1/13
     */
    
    package PackageFIFO;
    public class FIFO
    {
    private String array[];
    private int in; //prossima posizione in ingresso
    private int out; //prossima posizione in uscita
    private int count; //contatore posizioni piene
    private final int DIM; //dimensione array
    
    public FIFO(int dimensione)
    {
    DIM = dimensione;
    in=0;
    out=0;
    count=0;
    array = new String[DIM]; //crea l'array
    }
    
    
    public boolean insert(String s)
    {
    if(count==DIM) //se la coda è piena
    return false;
    
    array[in] = new String(s); //inserisce la stringa in posizione in
    
    count++; //incrementa il contatore di elementi
    in = (in+1)%DIM; //incrementa la posizione di ingresso in modo circolare
    
    return true;
    }
    
    public String extract() //restituisce un elemento, cancellandolo dalla coda
    {
    
    if(count==0) //se la coda è vuota
    return null;
    
    String risp = new String(array[out]);
    
    count--;
    out = (out+1)%DIM;
    
    return risp;
    }
    
    public String toString() //restituisce la successione di elementi senza estrarli dall'array
    {
    if(count==0)
    {
    System.out.println("La CODA e' vuota!");
    return null;
    }
    
    String risp = "";
    int pos;
    
    for(int i=0; i<count; i++)
    {
    pos = (out+i)%DIM;
    risp = new String(risp+array[pos]);
    }
    
    //se è necessario svuotare l'array basta togliere il commento dal codice
    /*
    in=0;
    out=0;
    count=0;
    */
    
    return risp;
    }
    }
    il file ProvaFIFO.java con il quale vorrei inserire una lettera e stamparla a video è il seguente:
    codice:
    /**
     * @(#)ProvaFiFO.java
     *
     *
     * @author 
     * @version 1.00 2012/1/13
     */
    
    import PackageFIFO.*;
    import java.io.*;
    import prog.io.*;
    
    public class ProvaFiFO {
    
       public static void main(String[] args) {
       	
       	
       	ConsoleInputManager inserisci= new ConsoleInputManager();
       	char InserisciLettera= inserisci.readChar("Inserisci LA LETTERA :   ");
       	
       	FIFO a= new FIFO(3);
       	
       	a.insert(InserisciLettera);
       	a.toString();
       	 	
       	
        }
        
        
    }
    i 2 errori che mi da sono i seguenti:
    codice:
    C:\Documents and Settings\All Users\Documenti\Programmazione\java\ProvaFiFO.java:9: package PackageFIFO does not exist
    import PackageFIFO.*;
    ^
    C:\Documents and Settings\All Users\Documenti\Programmazione\java\ProvaFiFO.java:21: cannot access FIFO
    bad class file: C:\Documents and Settings\All Users\Documenti\Programmazione\java\FIFO.java
    file does not contain class FIFO
    Please remove or make sure it appears in the correct subdirectory of the classpath.
        FIFO a= new FIFO(3);
        ^
    2 errors
    
    Process completed.
    Come posso sistemarlo?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da 19pantarei75
    questo file l'ho chiamato FIFO.java e l'ho messo nella stessa cartella dove sarà presente il file ProvaFifo.java che lo utilizzerà.
    No, FIFO è nel package PackageFIFO e la regola fondamentale dei package è che devono sempre "riflettersi" nella struttura delle directory.
    Quindi il compilato FIFO.class deve stare sotto una directory chiamata PackageFIFO (anche il sorgente è bene che segua la stessa struttura) e la directory che contiene PackageFIFO deve essere messa "in classpath".

    Lo risolvi con:

    codice:
    DirectoryXyz (qualunque cosa sia, non importa)
      \
       ProvaFiFO.java
       PackageFIFO
         \
          FIFO.java
    Poi è DirectoryXyz che deve stare in classpath. Quindi stando in DirectoryXyz dai:

    javac -classpath . ProvaFiFO.java
    java -classpath . ProvaFiFO

    Oppure puoi evitare -classpath . se nella variabile di ambiente CLASSPATH hai già il . (punto).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Non inserirti dentro alle discussioni altrui per proporre dei tuoi (nuovi) problemi, soprattutto quando le discussioni altrui sono ormai decedute da 5 anni e i tuoi problemi hanno una relazione molto marginale con quelli trattati nella discussione originale.

    Se il tuo problema è in qualche modo collegabile ad un problema trattato in un'altra discussione, semplicemente linka la discussione collegata, sempre nella tua nuova discussione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.