Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-06-2003, 16:13   #1
Frank1962
Senior Member
 
L'Avatar di Frank1962
 
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
[JAVA] leggere un .class in un file .jar: it's possible ?

Ho un programmino aziendale scritto in java composto da vari file .jar ....in uno di questi c'è un file .class, il seguente:

Quote:
package connection;

import java.util.TimeZone;

public interface This
{

public abstract String getaA();

public abstract int getAb();

public abstract int getAc();

public abstract int getAd();

public abstract int getAe();

public abstract int getAf();

public abstract int getAg();

public abstract float getAh();

public abstract float getAi();

public abstract float getAl();

public abstract float getAm();

public abstract long getAn();

public abstract float getAo();

public abstract float getAp();

public abstract int getAq();

public abstract long getAr();

public abstract void setTime(long l, TimeZone timezone);

public abstract boolean isTimeLocked();

public abstract void setTimeLock(boolean flag);

}
...dovrei riuscire a creare un programmino, sempre in java, che mi possa visualizzare i dati che caricano queste funzioni (credo numeri con virgola) e salvarli in automatico in un .txt!

...il problema è che oltretutto il .class si trova zippato nello jar e quindi non so se lo posso esportare così!!
__________________
----------------------------------------------
File reality.sys corrupted, Reboot Universe? Y/N
----------------------------------------------
Frank1962 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2003, 16:27   #2
ajez
Senior Member
 
L'Avatar di ajez
 
Iscritto dal: May 2002
Città: Provincia de Venessia
Messaggi: 1078
non e' chiaro che devi fare. e poi e' un'interfaccia quella classe, quindi non e'implementata!!!
__________________
- Moderatore - IRC Op @ #sabayon su irc.freenode.net - Core Beta Tester - Blog Sabayon
ajez è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2003, 18:11   #3
Frank1962
Senior Member
 
L'Avatar di Frank1962
 
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
Quote:
Originally posted by "ajez"

.....e poi e' un'interfaccia quella classe, quindi non e'implementata!!!
tradotto pls !?
__________________
----------------------------------------------
File reality.sys corrupted, Reboot Universe? Y/N
----------------------------------------------
Frank1962 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2003, 22:50   #4
alphacygni
Senior Member
 
L'Avatar di alphacygni
 
Iscritto dal: Mar 2002
Città: Roma - Milano - Lagos
Messaggi: 8579
uhm beh in soldoni diciamo che un'interfaccia di per se' non fa nulla... i metodi che vedi devi richiamarli da un'istanza di una classe che la implementa...
__________________
--- --- VENDO AppleCare per Macbook Pro 15"/17" a 200E --- ---
Ho trattato con mezzo forum, per l'altra meta' mi sto attrezzando... tutto ok, tranne con quel diversamente onesto di drwebby
Perditempo di professione: signirr
alphacygni è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2003, 06:50   #5
Frank1962
Senior Member
 
L'Avatar di Frank1962
 
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
Quote:
Originally posted by "alphacygni"

uhm beh in soldoni diciamo che un'interfaccia di per se' non fa nulla... i metodi che vedi devi richiamarli da un'istanza di una classe che la implementa...


ps: ma è uno scherzo o stai dicendo sul serio
__________________
----------------------------------------------
File reality.sys corrupted, Reboot Universe? Y/N
----------------------------------------------
Frank1962 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2003, 08:59   #6
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Se nel classpath includi il .jar contenente quell'interfaccia, puoi tranquillamente implementarla...

Cmq sono sicuro che esiste un'altra classe nel .jar che implementa già l'interfaccia da te indicata e i relativi metodi.Per salvare i dati in un file non c'è nessun problema, un qualunque tutorial ti può essere di aiuto...oppure se non hai voglia di leggere chiedi, ma a quel punto bisognerà vedere se avrò io voglia di rispondere
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2003, 09:10   #7
ajez
Senior Member
 
L'Avatar di ajez
 
Iscritto dal: May 2002
Città: Provincia de Venessia
Messaggi: 1078
Quote:
Originally posted by "Frank1962"





ps: ma è uno scherzo o stai dicendo sul serio
e' vero. deve esserci da qualche parte una classe che implementa quell'interfaccia. quando hai scoperto il nome della classe, ti crei una variabile di quella classe e puoi richiamarne i metodi per ottenere i dati. l'interfaccia serve a dare uno scheletro dei metodi usabili e poi devi farti una classe (o piu') che implementi quei metodi. cosi' su un programma che usa certe classi di cui non sai niente a priori, ci metti sta interfaccia che comprende tutte le classi che la implementano. non so se e' chiaro
__________________
- Moderatore - IRC Op @ #sabayon su irc.freenode.net - Core Beta Tester - Blog Sabayon
ajez è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2003, 09:25   #8
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Re: [JAVA] leggere un .class in un file .jar: it's possible

Quote:
Originally posted by "Frank1962"

Ho un programmino aziendale scritto in java composto da vari file .jar ....in uno di questi c'è un file .class, il seguente:



...dovrei riuscire a creare un programmino, sempre in java, che mi possa visualizzare i dati che caricano queste funzioni (credo numeri con virgola) e salvarli in automatico in un .txt!

...il problema è che oltretutto il .class si trova zippato nello jar e quindi non so se lo posso esportare così!!
Forse ho capito male, ma a me sembra che tu voglia intercettare i dati che passano per questa interfaccia mentre il programma è in esecuzione , giusto?
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2003, 20:20   #9
Frank1962
Senior Member
 
L'Avatar di Frank1962
 
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
Re: [JAVA] leggere un .class in un file .jar: it's possible

Quote:
Originally posted by "PGI"



Forse ho capito male, ma a me sembra che tu voglia intercettare i dati che passano per questa interfaccia mentre il programma è in esecuzione , giusto?
esatto !!!! ....dopo l'arabo finalmente un pò di italiano !!!!
__________________
----------------------------------------------
File reality.sys corrupted, Reboot Universe? Y/N
----------------------------------------------
Frank1962 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2003, 22:01   #10
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Hai detto niente hai detto! Altro che arabo, personalmente non mai neanche pensato di fare una cosa del genere. Di sicuro è un problema interessante...
Potebbe servire qualche giorno per vedere se è possibile farlo senza passare per il reverse engineering del codice (cineseria che significa tradurre i file class in file sorgente che non sempre da' i risultati sperati). Un quarto di idea potrei anche averla, ma non garantisco nulla, se trovi altri suggerimenti seguili ad occhi chiusi.

In ogni caso mi faccio sentire.

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 28-06-2003, 16:38   #11
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Mi arrendo

Allo stato delle mie conoscenze "nun se po' fa'". Forse qualche programmatore che conosca bene C o altro potrebbe dirti come accedere agli indirizzi di memoria usati dalla jvm per l'esecuzione del programma, io in C riesco a stampare 10 volte "ciao mondo" sulla consolle e lì mi fermo.
Non è possibile usare la JNI (Java native interface, che permette di chiamare metodi in esecuzione in una jvm da un programma esterno) a meno che la classe che usa quell'interfaccia non assegni i valori restituiti dai metodi che implementa a dei campi accessibili (e questa è una cosa che potremmo sapere solo decompilando il file class che contiene il bytecode dell'oggetto che implementa l'interfaccia e non è detto che si capisca).

Non resta che trovare la classe che implementa l'interfaccia, decompilarla, cambiarle il nome e ricompilarla.
Poi ne crei un'estensione (una classa "figlia") e le dai lo stesso nome della classe "originale", riscrivi tutti i metodi in modo che richiamino quelli dell'interfaccia nella classe genitore e in più scrivano su un file o sulla consolle i valori che ti interessano.
Compili la classe e la sostituisci a quella "originale" presente nel file jar e aggiungi al jar anche la classe originale a cui avevi cambiato il nome.
Farlo potrebbe essere più complicato che dirlo.

Ciao.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2003, 22:36   #12
theClimber
Senior Member
 
L'Avatar di theClimber
 
Iscritto dal: Oct 2000
Messaggi: 235
"se po' fa, se po' fa", dai un occhio a questo progetto OpenSource:

http://www.eclipse.org/aspectj

E' un estensione di Java che permette di aggiungere codice su punti di estensione (JoinPoint) che matchano certe condizioni (Esempio: chiamate a metodi, lancio e cattura di eccezzioni, accesso a variabili). Dalla versione 1.1 si puo' applicare anche a classi gia' compilate (ad esempio contenute in file jar)

C'e' comunque un po da studiare
__________________
...writing about climbing is boring. I would rather go climbing. (Chuck Pratt)
theClimber è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2003, 22:47   #13
theClimber
Senior Member
 
L'Avatar di theClimber
 
Iscritto dal: Oct 2000
Messaggi: 235
Re: Mi arrendo

Quote:
Originally posted by "PGI"



Non resta che trovare la classe che implementa l'interfaccia, decompilarla, cambiarle il nome e ricompilarla.
Poi ne crei un'estensione (una classa "figlia") e le dai lo stesso nome della classe "originale", riscrivi tutti i metodi in modo che richiamino quelli dell'interfaccia nella classe genitore e in più scrivano su un file o sulla consolle i valori che ti interessano.
Compili la classe e la sostituisci a quella "originale" presente nel file jar e aggiungi al jar anche la classe originale a cui avevi cambiato il nome.
Farlo potrebbe essere più complicato che dirlo.

Ciao.
Se puoi controllare l'instanziazione della classe, utilizzare questo metodo e' cmq assay + semplice, ed e' un ottima soluzione.

Una possibile variante a questa soluzione e' che la classe che intercetta i valori implementi l'interfaccia ma non estenda direttamente la classe da intercettare, ma contenga una variabile ad un istanza della classe.
I metodi possono quindi implementare una semplice delega all'oggetto contenuto. Perche' fare questo? dato che in java l'ereditarieta' multipla non esiste, questo potrebbe essere un metodo per simularla. (ad esempio potrei estedere 2 classi, una con il tradizionale extend el'altra mantenendo un implementazione di riferimento in una variabile di classe)

Ciao
__________________
...writing about climbing is boring. I would rather go climbing. (Chuck Pratt)
theClimber è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2003, 23:09   #14
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Grande link, non sapevo neanche esistesse, lo stò scaricando per me .

Devo dire però che ho provato a leggere la documentazione e mi sembrava di essere un babbuino, avrò capito si e no una parola su 3. Ma sembra calzare a pennello col problema di queso post.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2003, 23:14   #15
theClimber
Senior Member
 
L'Avatar di theClimber
 
Iscritto dal: Oct 2000
Messaggi: 235
Nella sezione link, sono referenziati un bel po di articoli teorici sull'aspect oriented programming (AOP), veramente meritevoli, dacci un occhio.

Ciao
__________________
...writing about climbing is boring. I would rather go climbing. (Chuck Pratt)
theClimber è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2003, 06:47   #16
Frank1962
Senior Member
 
L'Avatar di Frank1962
 
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
grazie a tutti per le dritte ...ma sono sempre al punto di partenza

...non vedo cmq come questo aop possa risolvere il mio problema dato che mi sembra + che altro che la sua utilità sia quella di fornire metodi e tecniche per decomporre i problemi in un certo numero di componenti funzionali e un certo numero di aspetti....

( ps: frase presa da un sito.... che non so manco cosa voglia dire )
__________________
----------------------------------------------
File reality.sys corrupted, Reboot Universe? Y/N
----------------------------------------------
Frank1962 è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2003, 13:10   #17
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Brevissimamente, e stando a quello che ho capito perchè so dell'esistenza di AspectJ da 2 post (tra l'altro ho scoperto anche che c'è uno strumento analogo direttamente di IBM), puoi creare una classe separata da quelle che hai già in cui definisci un oggetto che reagisce ai metodi di altre classi senza, e qui sta il bello, avere riferimenti incrociati (che è quello che invece normalmente dovresti avere).
Per farlo dovresti creare una classe java usando quelle particolari estensioni del linguaggio che sono fornite appunto da AspectJ che "catturano" i metodi (ma non solo) di altri oggetti "viventi" (cioè durante l'esecuzione), compilarla con ajc.exe (un compilatore java esteso fornito con AspectJ) e...beh, in qualche modo la cosa poi funziona, solo che sono a metà della documentazione e ancora no so dirti di più.
Comunque è esattamente quello che cercavi, di queso ne sono sicuro, ed è molto meglio della ricompilazione delle classe che hai già.
Erano almeno 7 mesi che non vedevo più una cosa veramente interessante su Java, theClimber mi ha acceso una lampadina grossa come il sole
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2003, 15:17   #18
PGI
Bannato
 
L'Avatar di PGI
 
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
Certo che la documentazione è fatta proprio col e se quella sintassi è "un'estensione di quella di java" chi ha letto java per estenderlo
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2003, 23:35   #19
Frank1962
Senior Member
 
L'Avatar di Frank1962
 
Iscritto dal: Sep 2001
Città: de_legato
Messaggi: 792
Quote:
Originally posted by "PGI"

Per farlo dovresti creare una classe java usando quelle particolari estensioni del linguaggio che sono fornite appunto da AspectJ che "catturano" i metodi (ma non solo) di altri oggetti "viventi".........
dici estensioni tipo questa ?
__________________
----------------------------------------------
File reality.sys corrupted, Reboot Universe? Y/N
----------------------------------------------
Frank1962 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2003, 06:57   #20
theClimber
Senior Member
 
L'Avatar di theClimber
 
Iscritto dal: Oct 2000
Messaggi: 235
Quote:
Originally posted by "PGI"

Certo che la documentazione è fatta proprio col e se quella sintassi è "un'estensione di quella di java" chi ha letto java per estenderlo
In effetti se proprio c'e' una critica ad AspectJ e proprio il fatto che e' un attiminio complesso e troppo potente per la maggior parte degli utilizzi.

Consiglio di trovare degli esempi tra la documentazione fornita e partire da quelli.

Tra gli articoli citati sul sito, questo sembra abbanstanza buono come punto di partenza:
http://www-106.ibm.com/developerworks/java/library/j-aspectj/index.html?dwzone=java

se proptio con Aspect J non se fa, ci sono anche i seguenti AOP:
HyperJ: http://www.research.ibm.com/hyperspace/index.htm
DemeterJ: http://www.ccs.neu.edu/research/demeter/DemeterJava/
JBoss: Jboss4 implementa una sua versione AOP dichiarativa in XML

Purtroppo non penso che i primi 2 possono applicarsi a Jar gia' compilati,
mentre JBoss si applica a runtime, ma dentro l'Application Server (Si aggiungerebbero i problemi di installazione e configurazione del server)

enjoy
__________________
...writing about climbing is boring. I would rather go climbing. (Chuck Pratt)
theClimber è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Ricarica da record: Zeekr supera i 1.300...
Un 'capezzolo' con feedback aptico al po...
Porsche Taycan Rush a Misano: prima al v...
Installare Windows 11 senza account Micr...
Cina, nuove regole per le auto elettrich...
OPPO A6 Pro arriva in Italia a 299,99 eu...
Black Myth: Wukong, oggi un maxi aggiorn...
Nomad in missione senza alcun controllo ...
Apple prepara il chip H3 e nuovi AirPods...
Battlefield 6 è uno spettacolo an...
Hyundai Ioniq 9, prima prova: viaggiare ...
Allarme blackout in Spagna: la rete elet...
MindsEye, rivolta dei dipendenti contro ...
In Cina Xiaomi SU7 Ultra prende fuoco do...
Apple Smart Glass: display integrato e d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:46.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v