Quote Originariamente inviata da jabjoint Visualizza il messaggio
Buongiorno, sto cercando di salvare lo stream di una classe Swing in un file XML, ma in una circostanza spiegata nei commenti genera errore, ecco il codice:

codice:
          XMLEncoder e = new XMLEncoder( new BufferedOutputStream( new
          FileOutputStream(dir+"Form.xml")));
    
           //Estraendo il Form da una classe esterna, il programma genera errore: 
          JFrame login = new Login();

           //JFrame login = new JFrame() //Creando un JFrame qui il programma funziona creando il buffer dello stream.
            
                    
          e.writeObject(login); 
          e.close()
codice:
java.lang.IllegalAccessException: class sun.reflect.misc.Trampoline cannot access class test.Login (in module TestFrame) because module TestFrame does not export test to unnamed module @574b560f
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement XMLEncoder.writeObject(Login);
Continuing ...
L'errore dipende dall' accesso alla classe che restituisce l'oggetto JFrame, forse devo aggiungere nel module-info.java dei parametri?
Da una ricerca si evince che sia da usare add-exports:

add-exports: opens access to public classes existing in modules, which are not exported through module-info.java. So your code/jars in classpath can access public classes exported by module-info.java, but this one allows access to public classes which are not exported through module-info.java as well