Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
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


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
Avio si prepara ai test del Dimostratore...
Space Pioneer ha annunciato le cause del...
Anthropic avrebbe nuovi antibiotici cont...
Scoperto un 'moltiplicatore nascosto' ne...
DREO: a IFA 2026 4 novità fra cui...
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: 09:43.


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