|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 260
|
[JAVA]Strano errore
Ho un problema nell'aprire alcuni file .jar.
Dopo aver creato, da console, un file .jar mi da problemi quando vado ad aprirlo e in particolare mi esce una finestra con questo errore: "Fatal Exception occured. Program will exit." Questo succede solo con alcuni programmi altri invece funzionano. Ho notato che i programmi che non funzionano hanno in comune l'implementazione dell'ActionListener e quindi la gestione degli eventi (non so se c'entra qualcosa questo) |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 260
|
Come risolvo???????????
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 260
|
..................................
Ultima modifica di trignoleo : 13-07-2009 alle 09:13. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
se posti ogli 3 ore...non dai nememno il tempo.
cmq sei troppo vago. che jar sono? hai provato ad eseguirli da console?
__________________
My gaming placement |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 260
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Dovresti almeno specificare per intero l'errore che ti viene restituito...
__________________
|
|
|
|
|
|
#7 | |
|
Member
Iscritto dal: Jul 2009
Messaggi: 260
|
Quote:
Exception in thread "main" java.lang.NoSuchMethodError: main mentre facendo il doppio click sul file jar creato (con il comando jar cmf Manifest.txt nome_file.jar *.class) esce una finestra della JVM con questo messaggio: Fatal Exception occured. Program will exit. PS: Uso la stessa procedura per tutti i programmi che faccio, ma come ho già detto, alcuni funzionano ed altri no. |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Quote:
Se l'hai generato con BlueJ (l'ho usato l'ultima volta 2 anni fa penso, e non ci tornerò mai), prova a vedere se puoi specificare la classe main principale del progetto
__________________
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Controlla l'attributo Class-Path del manifesto del jar. Se apri il jar con un decompressore (winzip, 7zip o quant'altro) dentro torvi una cartella META-INF e dentro a quella cartella un file Manifest.mf. E' un file di testo semplice, lo apri e verifichi:
a. che esista un attributo Class-Path b. che il valore dell'attributo sia il nome pienamente qualificato della classe che contiene il metodo main del programma.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#10 | |
|
Member
Iscritto dal: Jul 2009
Messaggi: 260
|
Quote:
Manifest-Version: 1.0 Class-Path: Main-Class: Film |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
La classe Film si chiama effettivamente Film? (Cioè non ha un package?)
La classe Film contiene un metodo: public static void main(String[] args) {...qualcosa...}
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#12 | |
|
Member
Iscritto dal: Jul 2009
Messaggi: 260
|
Quote:
Si contiene il metodo main che è stato cosi' dichiarato: public void main()throws Exception |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
se la classe appartiene al package film allora li suo nome - pienamente qualificato - è:
film.Film dunque l'attributo Class-Path dovrebbe essere: Class-Path: film.Film Il metodo "main" per essere il main necessario all'avvio di un programma Java deve avere la firma: public static void main(String[] args) o l'equivalente vararg public static void main(String...args) La clausola di rilascio è ininfluente - può quindi rilasciare un Exception.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#14 | ||
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Quote:
Quote:
http://java.sun.com/javase/6/docs/te...0Specification
__________________
|
||
|
|
|
|
|
#15 |
|
Member
Iscritto dal: Jul 2009
Messaggi: 260
|
il main non posso dichiararlo statico poiche' in esso sono messi la posizione e
la grandezza (il getContentPane.add(...) per capirci) dei JButton, JTextField e cavolate varie. pulsanti e textfield ecc.. ecc.. non possono stare in un contesto statico. |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Sì, pardon, Main-Class, non Class-Path. Sai com'è, ho una punta di parkinson ogni tanto...
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Quote:
Che cosa fa complessivamente la tua applicazione? Ovvero di che cosa si tratta? Apre un Frame?
__________________
|
|
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Quote:
Il "main" necessario all'avvio del programma deve essere esattamente quello indicato. Poi puoi benissimo dichiarare un altro metodo che faccia quello che vuoi. Nel tuo caso dirai una cosa tipo (in film.Film) Codice:
public static void main(String[] args) {
try {
Film f = new Film();
f.main();
} catch(Exception ex) {
ex.printStackTrace();
}
}
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
|
#19 | |
|
Member
Iscritto dal: Jul 2009
Messaggi: 260
|
Quote:
in un file di testo e inoltre permette di fare una ricerca di un film sempre all'interno del file di testo (piu' che un programma è una stupidaggine). Si apre un Frame. Ora non posso ma piu' tardi posto il codice(ho il programma su un altro pc). Scusate per l'ignoranza e grazie per la pazienza |
|
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: Verona
Messaggi: 1060
|
Quote:
Allora trignoleo, se tu (come presumo) hai un interfaccia Swing, probabilmente avrai una finestra JFrame principale. Il classico main di un'applicazione del genere è Codice:
public static void main (String[] args) {
javax.swing.SwingUtilities.EventQueue.invokeLater(new Runnable() {
public void run() {
new MyFrame();
}
});
}
OK, siamo in presenza di una race condition tra me e PGI, penso che dovremmo sincronizzarci (battuta triste )
__________________
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:06.












)








