ottengo questo errore:
da questo codice: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
Poco più sopra nello stesso file IO.java uso invece questo sistema per salvare, e funziona senza alcun problemacodice: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() ); } }
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 finecodice: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() ); } }
per completezza vi allego anche la classe Settings
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.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(); } }
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ì)

Rispondi quotando