Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    82

    Serializzazione - classe non trovata ?

    ottengo questo errore:
    codice:
    D:\JContab\JContab>javac JContab.java
    .\lib\IO.java:57: unreported exception java.lang.ClassNotFoundException; must be
     caught or declared to be thrown
                set = (Settings) oi.readObject() ;
                                              ^
    1 error
    da questo codice:

    codice:
        public static void caricaSettings() {
        
          try {
                FileInputStream fi = new FileInputStream(Settings.iniFile);
                ObjectInputStream oi = new ObjectInputStream(fi);
                Settings set;
                set = (Settings) oi.readObject() ;
                oi.close();
          } catch (IOException e) {
                System.out.println ("Recupero iniFile non riuscito" +
                                    e.toString() );
          }
    
        }
    Poco più sopra nello stesso file IO.java uso invece questo sistema per salvare, e funziona senza alcun problema

    codice:
        public static void salvaSettings() {
        
            try {
                FileOutputStream fo = new FileOutputStream(Settings.iniFile);
                ObjectOutputStream oo = new ObjectOutputStream(fo);
                oo.writeObject(new Settings() );
                oo.close();
            } catch (IOException e) {
                System.out.println ("Salvataggio iniFile non riuscito" +
                                    e.toString() );
            }
        
        }
    il che mi ha fatto escludere che la classe Settings (statica e serializzabile) abbia dei problemi e ho escluso pure anche qualche import non sia andato a buon fine

    per completezza vi allego anche la classe Settings

    codice:
    package lib;
    
    import java.io.*;
    
    public final class Settings 
      implements Serializable{
    
      public static transient final String iniDir = "." + File.separatorChar + "ini"
                                                    + File.separatorChar;
    
      public static transient final String dbDir = "." + File.separatorChar + "DB"
                                                    + File.separatorChar;
    
      public static transient final String iniFile = iniDir + "jcontab.ini";
    
    
      private static String meseAperto = Utils.meseAttuale();
      
      public static String getMeseAperto() {
        return meseAperto;
      }
      
      public static void setMeseAperto(String inMese) {
        meseAperto = inMese;
        IO.salvaSettings();  
      }
      
    }
    la classe settings, come capirete serve per mantenere e far persistere le impostazioni dell'utente, per ora ce n'è soltanto una, il che spiega perchè è statica, ogni parte del programma vi deve poter accedere, compresa la classe, anch'essa statica, IO.java, che prende l'oggetto e grazie al Serializable lo salva e, dovrebbe, anche ricaricarlo.

    salva ma non carica, perché ?

    ... qual'è il problema stavolta ?
    (si, lo so che per essere il mio primo programma java sto tentando troppo, ma ... va bene così)

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    82
    oddio che stupido, avevo frainteso il significato del messaggio comunicatomi dal compilatore...

    .. mi stava dicendo che una eccezione me la sono fatta scappare, che non ho previsto il blocco catch apposito ... che grandissimo stupido che sono ....

    due sue due oggi ...

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.