|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: May 2009
Messaggi: 129
|
[JAVA & NetBeans] come importo dei .class ?
Ragazzi ho un problema con netbeans.
Ho dei file .class (ho solo il .class e non i sorgenti .java).Come faccio ad importarli in un progetto netbeans? Ho provato a fare un jar,quindi a inserirli come librerie,ma niente,non me li vede! Sto scelrando per una stupidaggine.Qualcuno sa come posso fare? saluti |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
prova ad aggiungere la cartella contenente i file class. Potrebbe comunque essere un problema di package, nel senso che se il tipo dichiarato nel file class x appartiene al package pippo deve trovarsi in una cartella "pippo" (anche nel jar).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: May 2009
Messaggi: 129
|
Allora, ho questi 2 .class nella cartella InputLib:
Codice:
InputLib | |_ Input.class |_ ReadStream.class Codice:
Manifest-Version: 1.0 Codice:
C:\prova> jar cvf InputLib.jar InputLib/Input.class InputLib/ReadStream.class aggiunto manifesto aggiunta in corso di: InputLib/Input.class (in = 886) (out = 433) (compresso 51%) aggiunta in corso di: InputLib/ReadStream.class (in = 4378) (out = 2487) (compresso 43%) Se scrivo: Codice:
import InputLib.*; Se scrivo: Codice:
import InputLib.Input; che sclero! |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
*EDIT: doppio*
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 25-01-2010 alle 17:24. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Il warning dell'IDE "Unused import" non e' un errore: ti sta solo avvisando che quell'import si riferisce a entità (classi e/o altro) che non sono attualmente usate nell'unità di compilazione corrente (il tuo file java).
Comunque, supposto di avere tutti i .class in una cartella (ad esempio "Pippo"): click destro sul nodo del progetto nella vista Projects, si apre il menu contestuale, click su Properties, si apre la finestra delle proprieta' di progetto, click su Libraries, viene visualizzata la tab del gestore delle librerie, click sul bottone "Add JAR/Folder" e si apre il file browser mediante il quale selezionata la cartella "Pippo" (con singolo click ovviamente) e confermata la scelta con il bottone "Apri" se a cavallo. Ora vai in un bel file .java del tuo progetto e, immaginando che ti serva usare la classe pubblica FooUtilities ne dichiari un'istanza: sara NetBeans stesso che ti segnalera' un errore e mediante selezione di un apposito tooltip (click sulla lampadina accesa a inizio della riga incriminata) ci pensera' lui a inserire l'import. Ovviamente puoi sempre farlo a mano.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: May 2009
Messaggi: 129
|
So che non è un errore l'unused import però all'istruzione
Codice:
Input.readInt(); Ho provato a seguire anche le tue istruzioni ma niente,non va....non le vede e non capisco perche! |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Hai già verificato che il problema non sia quello evidenziato da PGI?
Quote:
Se vai nella cartella di installazione del JDK, dentro la cartella "docs" trovi un file index.html: aprilo, scorri la pagina fino a trovare il link "JDK Tool and Utility Documentation", cliccalo, quindi nella nuova pagina clicca il link "Basic Tools": nella lista dei basic tools c'è anche il link per la documentazione di javap. In breve ti basta lanciarlo e passargli come argomento il nome di una classe, per esempio Input: javap stampa sullo standard output della tua macchina tutta una serie di informazioni su quel file .class. In questo modo puoi vedere il nome esteso della classe, e capire quindi in che package (e di conseguenza in che cartella) vuole essere contenuta. Ti allego uno screen d'uso di javap: ![]() Si evince che la classe "ApplicationStarter" deve essere contenuta nel package "ecoguardian", e quindi in una cartella omonima.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 26-01-2010 alle 08:56. |
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: May 2009
Messaggi: 129
|
mmm innanzitutto ti dico che non conoscevo questo programmino javap...molto carino...ma purtroppo niente...ho provato,e le classi in oggetto non sono contenute in alcun package:
![]() Bah,mi sembra una situazione paradossale...anzi...una minch**** paradossale non riuscire ad uscire da questa situazione patetica,che rabbia,spaccherei netBeans.... |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Allora credo sia normale: ho fatto una prova anche qui, creando una classe nel cosidetto "default package" di progetto in NetBeans, che poi significa scrivere una classe in un'unità di compilazione omettendo l'iniziale dichiarazione di package.
Codice:
// package unnome class NonImportabile { // bla bla... } ![]() A questo punto non so se si possa ovviare in qualche modo, avendo tu in mano solo i due .class e non i .java. @EDIT: Gesù, quando postate gli screen shot ridimensionateli almeno: se l'immagine è troppo grande sbarella (almeno a me) il layout della pagina in modo osceno...
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 04-12-2012 alle 11:58. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Decompila i .class se puoi
![]() |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Posto un link per scaricare CavaJ, allora
![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#13 |
Member
Iscritto dal: May 2009
Messaggi: 129
|
Eh già....era una questione di path di package.Ho risolto,grazie per avermi indicato la strada.
Comunque fino a questo momento ho amato Netbeans,ma da oggi,dopo avermi fatto impazzire 5 giorni dietro questa cazzata orribilante(ma un'IDE non lo dovrebbe aiutare il programmatore??? )ho cominciato a rivalutarlo.... Dai...ma vi rendete conto che per utilizzare un .class stupidssimo,tocca fare reverse engeenering del file.class originali? Possibile che non abbiano tenuto conto del fatto che un sorgente non faccia parte di alcun package? No no...io non ci sto...scusate lo sfogo ma sbroccare giorni dientro questa cosa mi ha fatto venire il vomito! |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Scrivi una patch e mandagliela, qui ci sono le istruzioni:
http://netbeans.org/community/contribute/patches.html
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:53.