Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-06-2003, 17: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, 17: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, 19: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, 23: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, 07: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, 09: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, 10: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, 10: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, 21: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, 23: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, 17: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, 23: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, 23: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 05-07-2003, 00: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 05-07-2003, 00: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, 07: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, 14: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, 16: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 06-07-2003, 00: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, 07: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


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Manda la RAM Corsair in assistenza, rice...
ASUS ROG G1000 con 'AniMe Holo': saranno...
Un test di longevità ha messo alla prova...
Incat inizia i test dell'incredibile tra...
LG Sound Suite: al CES il sistema audio ...
Avengers Doomsday, il primo trailer &egr...
La crisi delle memorie non farà sconti a...
Il trailer più atteso dell'anno &...
I gamer vogliono i monitor OLED: sopratt...
Samsung alza l’asticella dei televisori ...
Energie rinnovabili 2025: quasi 42% del ...
Le auto elettriche volano in tutta Europ...
Nuovo look per la finestra Esegui su Win...
Rad Power Bikes è in bancarotta: ...
Cronos: The New Dawn diventa più ...
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: 18:15.


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