Newsgroup: it.comp.java
Titolo: Scusate mi potete spiegare cosa significa java.lang.AbstractMethodError  ?

Praticamente ho fatto un programma che funzione su un AS400 ma su un
altro nonostante l'abbia ricompilato in fase di esecuzione mi appare
il seguente errore.
Hanno due jdk diverse ma se mi ha compilato il sorgente vuol dire che
ha tutto quello che gli serve o sbaglio?
Grazie
L'errore che mi esce è:
java.lang.AbstractMethodError
       jxl/write/biff/RowRecord.writeCells(Ljxl/write/biff/File;)V+0
(RowRecord.java:291)
       jxl/write/biff/SheetWriter.write()V+0 (SheetWriter.java:
211)
       jxl/write/biff/WritableSheetImpl.write()V+0
(WritableSheetImpl.java:1403)
       jxl/write/biff/WritableWorkbookImpl.write()V+0
(WritableWorkbookImpl.java:626)
       FileHandling.main([Ljava/lang/String;)V+0 (FileHandling.java:
76)
 Programma Java completato con codice di uscita
1

 ha tutto quello che gli serve o sbaglio?
Premetto di non essere espertissimo.
Se le JDK sono diverse i problemi possono essere molteplici...
Personalmente gli errori quando aggiorno il SDK sono del
tipo deprecated method... Tante volte basta compilare con
delle opzioni di "javac" adatte alle API necessarie.
Potrebbe trattarsi di metodi abstract non implementati sulla versione della 
AS400.
Questi metodi possono essere compilati ma appena vengono chiamati
senza un adeguata implementazione ti rendono errori.
Grazie
L'errore che mi esce è:
java.lang.AbstractMethodError
       jxl/write/biff/RowRecord.writeCells(Ljxl/write/biff/File;)V+0
(RowRecord.java:291)
       jxl/write/biff/SheetWriter.write()V+0 (SheetWriter.java:
211)
       jxl/write/biff/WritableSheetImpl.write()V+0
(WritableSheetImpl.java:1403)
       jxl/write/biff/WritableWorkbookImpl.write()V+0
(WritableWorkbookImpl.java:626)
       FileHandling.main([Ljava/lang/String;)V+0 (FileHandling.java:
76)
 Programma Java completato con codice di uscita
1
Cito java.doc @see 
http://java.sun.com/javase/6/docs/api/
"
java.lang
Class AbstractMethodError
java.lang.Object
  java.lang.Throwable
      java.lang.Error
          java.lang.LinkageError
              java.lang.IncompatibleClassChangeError
                  java.lang.AbstractMethodError
All Implemented Interfaces:
  Serializable
....
Thrown when an application tries to call an abstract method. Normally, this 
error is caught by the compiler; this error can only occur at run time if 
the definition of some class has incompatibly changed since the currently 
executing method was last compiled.
....
AbstractMethodError
public AbstractMethodError(String s)Constructs an AbstractMethodError with 
the specified detail message.
    Parameters:
    s - the detail message.
"
Non so magari prova a vedere se il messaggio nella String s ti dà qualche
spiegazione... 

 ha tutto quello che gli serve o sbaglio?
il messaggio vuol dire che viene invocato un metodo astratto non
implementato.
nel contesto del tuo programma non so cosa stia succedendo.

rootkit ha scritto:

Probabilmente hai compilato con una certa versione di una libreria ma in 
esecuzione hai una diversa versione.
Ti faccio un esempio: Versione 1 di una certa classe di libreria:
class A {
  public abstract void metodo1();
}
Sulla base di questa versione tu (o un'altra libreria) hai scritto:
class MiaA {
   public void metodo1() { ... }
}
Supponi che sia stata rilasciata una nuova versione della libreria che 
stai usando in esecuzione. Versione 2:
class A {
  public abstract void metodo1(Object param);
}
Supponi anche che il metodo1 venga richiamato da qualche altra classe 
della libreria, a cui tu passi un'istanza di MiaA. Quello che succede č 
proprio il tuo errore.
Visto che l'errore ce l'hai in jxl/write/biff/RowRecord.writeCells direi 
  che č questa la libreria di cui dovrebbe essere cambiata la versione.
Andrea

 Andrea
Grazie 1000!
Oggi provo a controllare...