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ì)