riuso progetto java/javaswing

ariannaari

Nuovo Utente
28 Set 2010
22
10
0
Buongiorno ragazzi... sono giorni che cerco di capire cosa e come devo fare per far funzionare il progetto di un'applicazione, fatta dai miei colleghi di università, sul mio pc.
E' un progetto d'esame svolto come lavoro di gruppo, in cui l'implementazione poi era individuale. E' un'applicazione rubrica in cui io devo creare la funzione ricerca. Ora il problema è:
come faccio a far girare l'applicazione da loro creata sul mio pc?
la cartella del progetto contiene:
-cartella .svn
-cartella build
-cartella dist
-cartella nbprojec
-cartella src
-cartella test
-file build.xml
-file bild-before-profiler.xml
-file db.text
-file manifest.mf

Ho letto che l'eseguibile è il file .jar nella cartella dist, ma se io ci clicco non succede nulla.
Come faccio ad eseguire questo file?

Sto proprio in altissimo mare!
 
  • Like
Reactions: ottofonsuppost
Molto probabilmente netbeans!
Il problema sta sicuramente tutto nella mia ignoranza! Nella cartella di progetto vedo anche file xml...e allora mi domando: è possibile che tramite browser visualizzino l'interfaccia grafica di questa applicazione?
Purtroppo non sono più in contatto con questi miei colleghi, quindi non posso chiedere loro una mano.
Tra l'altro hanno costruito un progetto sul progetto di altri e quindi reinterpretare il codice, o meglio la struttura dell'applicazione, è un casino.

Ho caricato il progetto su netbeans e mandato in run la main class, ma mi individua vari errori (assenza della libreria toplink ed errori vari):

Exception in thread "main" java.lang.NullPointerException
at control.CImmagini.<init>(CImmagini.java:65)
at control.CImmagini.istanza(CImmagini.java:75)
at control.CStartup.main(CStartup.java:35)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at control.CImmagini.<init>(CImmagini.java:65)
at control.CImmagini.istanza(CImmagini.java:75)
at presentation.componenti.backgroundedFittedLayeredPane.<init>(backgroundedFittedLayeredPane.java:24)
at presentation.PMAIN.<init>(PMAIN.java:56)
at control.CStartup$1.run(CStartup.java:28)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:691)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)
E ovviamente non mi si apre nulla.

Solo che, dico io, se una persona mi passa un progetto già funzionante, sul quale ha svolto un esame, non dovrebbe funzionare anche a me?

Grazie comunque per la tua collaborazione! :D
 
  • Like
Reactions: ottofonsuppost
Solo che, dico io, se una persona mi passa un progetto già funzionante, sul quale ha svolto un esame, non dovrebbe funzionare anche a me?

Ciao, non è così scontato.

Quando si crea un progetto in un qualsiasi IDE (Eclipse, Netbeans) ci sono delle configurazioni che non sono portabili da pc a pc, faccio un esempio (penso che sia anche il tuo problema)

Se io ho il progetto nella dir C:/pippo/pluto e ho le librerie in C:/pippo/pluto/lib, se passo il progetto a te e tu lo metti in C:/paperino/pluto, tutti i riferimenti al classpath vanno a farsi benedire.....

Per questo motivo bisogna condividere solo i sorgenti e le librerie, non i file di progetto (es directory nbproject, dist, etc) e scrivere un README che spiega come fare a configurare il progetto (importa java project, definisci il classpath, etc)

Se alleghi il progetto vedo di farlo funzionare da me e ti dico cosa ho fatto.

Altra cosa, ho visto che c'è una directory di svn, su repo non committate .class e le directory dist e nbproject, perchè per quello che spiegavo prima, ognuno ha una sua configurazione e NON deve essere condivisa, altrimenti se fai un commit delle tue impostazioni e un altro fa update non gli funziona più una fava.

Spero di esserti stato di aiuto

ciao
 
  • Like
Reactions: ottofonsuppost
Ciao sono riuscito a farlo funzionare sul mio pc (almeno mi è comparsa l'interfaccia).

Ti spiego come ho fatto:

1) Scaricato netbeans jee
2) Installato (installando anche JUnit è importante)
3) Scompattato il rar e fatto Open Project
4) Mi compare un warning riguardo toplink
5) Scaricato installer librerie toplink qui
6) Da un'altra finestra ho spostato il jar di top link nella root del progetto e lanciato java -jar glassfish-persistence-installer-v2ur1-b09d.jar
7) Da netbeans ho fatto resolve, new library chiamata toplink, poi addjars ho fatto sfoglia e incluso i jar appena creati dall'installer

Detto questo il progetto funziona (almeno compila). Ho dovuto fare una modifica alla classe CImmagini modificando la linea 61 da

File f = new File(this.getClass().getResource("/presentation/icone").toString().substring(6));
a
File f = new File(this.getClass().getResource("/presentation/icone").getFile());

Detto questo funziona. Ti allego un paio di screenshot sulle operazioni e\o avvisi

Fammi sapere

ciao
 

Allegati

  • toplink1.jpg
    toplink1.jpg
    87 KB · Visite: 518
  • toplink2.jpg
    toplink2.jpg
    89,1 KB · Visite: 517
  • warning.jpg
    warning.jpg
    83,2 KB · Visite: 564
  • Like
Reactions: ottofonsuppost
Allora... prima di installare la tua stessa versione di Netbeans provo a fare quello che hai fatto con la mia...anche se non so se ho JUnit...comunque ho cancellato il vecchio progetto, ma non riesco proprio ad aprire il progetto tramite OpenProject. Strano!
E di conseguenza non mi appare più neanche il warning su toplink! Provo a installare l'altra versione va! Ti faccio sapere quanto prima!
Grazie davvero comunque!
 
  • Like
Reactions: ottofonsuppost
Ciao sono riuscito a farlo funzionare sul mio pc (almeno mi è comparsa l'interfaccia).

....

Detto questo funziona. Ti allego un paio di screenshot sulle operazioni e\o avvisi

Fammi sapere

ciao

Innanzitutto davvero grazie. Allora ho riscaricato la versione nuova di Netbeans 7.3, ho incluso JUnit, mi ha fatto anche aggiornare JDK alla versione 7, ho seguito tutti i passi da te indicati ed ho fatto tutto così come hai fatto tu negli screenshot... quindi ho risolto il problema della mancanza della libreria, infine ho campbiato la riga 61 di CImmagini come mi hai detto tu.

Ora, vado a fare tasto destro sul progetto e metto run e mi appare:

init:
Deleting: C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build\built-jar.properties
compile:
run:
Exception in thread "main" java.lang.NullPointerException
at control.CImmagini.<init>(CImmagini.java:65)
at control.CImmagini.istanza(CImmagini.java:75)
at control.CStartup.main(CStartup.java:35)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at control.CImmagini.<init>(CImmagini.java:65)
at control.CImmagini.istanza(CImmagini.java:75)
at presentation.componenti.backgroundedFittedLayeredPane.<init>(backgroundedFittedLayeredPane.java:24)
at presentation.PMAIN.<init>(PMAIN.java:57)
at control.CStartup$1.run(CStartup.java:28)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Java Result: 1
BUILD SUCCESSFUL (total time: 9 seconds)

E comunque soprattutto... NIENTE INTERFACCIA!:crying: :crying:
Cosa diavolo sbaglio? Manca qualcosa al mio pc? booooh
 
  • Like
Reactions: ottofonsuppost
Sei sicura di aver cambiato il codice con il mio? Perchè quello è l'errore che ti dava con il vecchio codice....

Prova rifare la build, se non funziona metti questo prima della linea 65 e posta il risultato:

System.out.println(f.getAbsolutePath());

ciao
 
  • Like
Reactions: ottofonsuppost
Purtroppo sì, avevo fatto già la modifica. Comunque ho rifatto il copia e incolla dell'instruzione scritta da te ed ecco il risultato del build:


ant -f "C:\\Users\\arianna mazzocchetti\\Desktop\\Sist Elab Info 1\\PROGETTI DEGLI ALTRI\\rubrica_federico\\rubrica_federico" jar
init:
Deleting: C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build\built-jar.properties
Compiling 1 source file to C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build\classes
compile:
Copying 1 file to C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build
Copy libraries to C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\dist\lib.
Building jar: C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\dist\Rubrica.jar
To run this application from the command line without Ant, try:
java -jar "C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\dist\Rubrica.jar"
jar:
BUILD SUCCESSFUL (total time: 5 seconds)


Ora ho aggiunto la riga prima della 65, ho fatto il build:


ant -f "C:\\Users\\arianna mazzocchetti\\Desktop\\Sist Elab Info 1\\PROGETTI DEGLI ALTRI\\rubrica_federico\\rubrica_federico" jar
init:
Deleting: C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build\built-jar.properties
Compiling 1 source file to C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build\classes
compile:
Copying 1 file to C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build
Copy libraries to C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\dist\lib.
Building jar: C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\dist\Rubrica.jar
To run this application from the command line without Ant, try:
java -jar "C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\dist\Rubrica.jar"
jar:
BUILD SUCCESSFUL (total time: 0 seconds)


E dopo ho fatto il run ed ecco il risultato!

ant -f "C:\\Users\\arianna mazzocchetti\\Desktop\\Sist Elab Info 1\\PROGETTI DEGLI ALTRI\\rubrica_federico\\rubrica_federico" run
init:
Deleting: C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\arianna mazzocchetti\Desktop\Sist Elab Info 1\PROGETTI DEGLI ALTRI\rubrica_federico\rubrica_federico\build\built-jar.properties
compile:
run:
C:\Users\arianna%20mazzocchetti\Desktop\Sist%20Elab%20Info%201\PROGETTI%20DEGLI%20ALTRI\rubrica_federico\rubrica_federico\build\classes\presentation\icone
Exception in thread "main" java.lang.NullPointerException
at control.CImmagini.<init>(CImmagini.java:65)
at control.CImmagini.istanza(CImmagini.java:75)
at control.CStartup.main(CStartup.java:35)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
C:\Users\arianna%20mazzocchetti\Desktop\Sist%20Elab%20Info%201\PROGETTI%20DEGLI%20ALTRI\rubrica_federico\rubrica_federico\build\classes\presentation\icone
at control.CImmagini.<init>(CImmagini.java:65)
at control.CImmagini.istanza(CImmagini.java:75)
at presentation.componenti.backgroundedFittedLayeredPane.<init>(backgroundedFittedLayeredPane.java:24)
at presentation.PMAIN.<init>(PMAIN.java:57)
at control.CStartup$1.run(CStartup.java:28)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:688)
at java.awt.EventQueue$3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

Grazie davvero per tutto comunque! 0:)
 
  • Like
Reactions: ottofonsuppost
Ciao, il path del file è

"C:\Users\arianna%20mazzocchetti\Desktop\Sist%20Ela b%20Info%201\PROGETTI%20DEGLI%20ALTRI\rubrica_fede rico\rubrica_federico\build\classes\presentation\i cone"

Ma secondo me dovrebbe essere:

"C:\Users\arianna%20mazzocchetti\Desktop\Sist%20Ela b%20Info%201\PROGETTI%20DEGLI%20ALTRI\rubrica_fede rico\rubrica_federico\build\classes\presentation\icone"

praticamente senza spazio su "presentation\i cone" -> "presentation\icone".

Puoi controllare il codice per vedere se non c'è uno spazio di troppo? Altra cosa, la directory "C:\Users\arianna%20mazzocchetti\Desktop\Sist%20Ela b%20Info%201\PROGETTI%20DEGLI%20ALTRI\rubrica_fede rico\rubrica_federico\build\classes\presentation\icone" esiste?

Se tutto esiste ma continua a non funzionare metti tutto in un path senza spazi es "C:\rubrica_federico", diciamo che non è buona norma avere gli spazi nei nomi dei file.

Fammi sapere

ciao
 
  • Like
Reactions: ottofonsuppost
il solito errore dei principianti o degli pseudo programmatori: si pretende di maneggiare un linguaggio di programmazione senza conoscere come funziona il linguaggio. Qui abbiamo il caso di una utente che vuole "riciclare" un programma fatto in passato, da altri e si accorge che escono fuori errori a mitraglia; perchè non si comprende che in passato esistevano versioni JAVA differenti, non si comprende che le risorse venivano ubicate in un apposito pc con tanto di percorso da seguire da parte del CODICE, eccetera. Sappiamo che JAVA consente utilizzando un semplice BYTECODE di essere eseguito in qualsiasi VIRTUAL MACHINE di qualsiasi dispositivo, anche di un elettrodomestico.
Eccovi il link di un corso per neofiti, pubblicato in questo spettabile FORUM:

http://forum.mrw.it/threads/ottofonsuppost-e-la-grande-guerra-a-java-corso-gratis-per-neofiti.45758/

Ottofonsuppost e la grande guerra a JAVA - Corso GRATIS per neofiti

Capire cosa fa JAVA è il primo passo per armeggiare con il LINGUAGGIO JAVA. Spesso gli utenti credono di sapere utilizzare JAVA, ne scrivono correttamente addirittura il codice, ma non sanno che cosa fa JAVA, e come lo fa. Esistono docenti che insegnano ogni giorno il LINGUAGGIO JAVA, ma non saprebbero come risolvere un problema in un programma appena da loro scritto, problema sfornato durante la fase di esecuzione, perchè non hanno mai capito COME FUNZIONA JAVA.
Uno degli errori più frequenti dei neofiti è abbandonarsi all'uso della PROGRAMMAZIONE VISUALE, tanto bella e capace di scrivere codice al nostro posto, ma essi non sanno nulla di JAVA; credono di sapere scrivere in JAVA, mentre sono ignoranti di JAVA allo stato puro. Per questo sconsiglio sempre di utilizzare la programmazione visuale, all'inizio. La programmazione visuale, per componenti è il modo migliore per rimanere nell'ignoranza di questo linguaggio di programmazione. Che agli inizi, conviene imparare solo per effettuare PROGRAMMAZIONE PROCEDURALE, come negli antichi linguaggi di programmazione, tipo BASIC. Poi si può passare alla PROGRAMMAZIONE AD OGGETTI, e dopo, alla fine, alla PROGRAMMAZIONE VISUALE, per componenti già predisposti e facili da trascinare sul foglio di lavoro.
Un vero programmatore è colui che leggendo il CODICE sa dirti esattamente cosa farà la macchina, e senza far girare il programma, senza aver dato il RUN, ti dice subito gli errori che esso, il programma, sta per compiere e a cosa sono dovuti. in pratica, tutto ciò che la nostra utente ci scrive solo dopo aver letto le risposte del compilatore...
Baci e abbracci, OTTOFONSUPPOST.
 
Ultima modifica:

Discussioni simili