Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-09-2011, 22:00   #1
DeltaDirac
Senior Member
 
L'Avatar di DeltaDirac
 
Iscritto dal: Jan 2007
Città: Firenze
Messaggi: 2906
[Java] richiamare classi specifiche dal jar [Risolto]

Come posso creare un package jar (o zip) che contenga delle classi richiamabili da linea di comando?

Esempio: voglio creare l'archivio calcola.zip che contenga almeno due classi somma.class e sottrai.class.

Vorrei poter usare l'archivio con una chiamata del tipo:

Codice:
java -cp calcola.zip somma  2 3
piuttosto che:
Codice:
java -cp calcola.zip sottrai  10 5
e vedere il risultato (chissà perchè mi aspetto 5 e 5)

Ovviamente le due classi hanno entrambe un metodo main()

Con Netbeans riesco ad impostare solo una classe main attiva, e quindi il jar file generato contiene o l'una o l'altra classe eseguibile, mentre da linea di comando non riesco a far nulla di buono.

__________________

Alla povertà mancano molte cose, all'avarizia tutte.

Ultima modifica di DeltaDirac : 21-09-2011 alle 09:41. Motivo: Risolto
DeltaDirac è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2011, 00:27   #2
Floris
Senior Member
 
L'Avatar di Floris
 
Iscritto dal: Jan 2007
Messaggi: 2267
Non puoi recuperare gli argomenti della linea di comando dall'array String[] args passato alla funzione main?
Troveresti in prima posizione "somma" o "differenza" da cui puoi decidere cosa fare. Ti crei una classe che utilizza le altre due, somma e sottrazione.
__________________
Concluso con:...
Floris è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2011, 06:33   #3
DeltaDirac
Senior Member
 
L'Avatar di DeltaDirac
 
Iscritto dal: Jan 2007
Città: Firenze
Messaggi: 2906
Quote:
Originariamente inviato da Floris Guarda i messaggi
Non puoi recuperare gli argomenti della linea di comando dall'array String[] args passato alla funzione main?
Troveresti in prima posizione "somma" o "differenza" da cui puoi decidere cosa fare. Ti crei una classe che utilizza le altre due, somma e sottrazione.
Ciao Floris,

in realtà si: potrei fare come dici.

Però ho alcuni eseguibili che funzionano esattamente come detto: si lancia il bytecode con java -cp dal quale si evoca la classe voluta e quindi gli argomenti, e mi sono chiesto come sia realizzabile tutto ciò.

Vorrei capire meglio i meccanismi di gestione delle classi con metodi main() multipli nello stesso package.
Son di coccio, lo so
__________________

Alla povertà mancano molte cose, all'avarizia tutte.
DeltaDirac è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2011, 08:19   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da DeltaDirac Guarda i messaggi
Però ho alcuni eseguibili che funzionano esattamente come detto: si lancia il bytecode con java -cp dal quale si evoca la classe voluta e quindi gli argomenti, e mi sono chiesto come sia realizzabile tutto ciò.
Scusa, puoi postare due o tre esempi di queste invocazioni da riga di comando?
__________________

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)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2011, 09:04   #5
DeltaDirac
Senior Member
 
L'Avatar di DeltaDirac
 
Iscritto dal: Jan 2007
Città: Firenze
Messaggi: 2906
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Scusa, puoi postare due o tre esempi di queste invocazioni da riga di comando?
Sono esattamente quelli riportati nel primo messaggio:

Codice:
java -cp calcola.zip somma  2 3
piuttosto che:
Codice:
java -cp calcola.zip sottrai  10 5
I sorgenti hanno ognuno un metodo main() in modo da renderli eseguibili
__________________

Alla povertà mancano molte cose, all'avarizia tutte.
DeltaDirac è offline   Rispondi citando il messaggio o parte di esso
Old 21-09-2011, 09:51   #6
DeltaDirac
Senior Member
 
L'Avatar di DeltaDirac
 
Iscritto dal: Jan 2007
Città: Firenze
Messaggi: 2906
Era più semplice di quel che immaginassi:

1) si compilano i sorgenti delle classi ognuna col proprio metodo main():
Quote:
javac classe_1.java classe_2.java... classe_n.java
2) si crea il file jar con:
Quote:
jar -cf pack.jar classe_1.class classe_2.class... classe_n.class
3) si evocano le classi dal jar per nome usando l'opzione -cp :
Quote:
java -cp pack.jar classe_1 <parametri classe_1>
java -cp pack.jar classe_2 <parametri classe_2>
Ma funziona solo con classi "allo stesso livello" e che non appartengono ad altri packages.

That's all. Good for newbie as me
__________________

Alla povertà mancano molte cose, all'avarizia tutte.

Ultima modifica di DeltaDirac : 21-09-2011 alle 21:29.
DeltaDirac è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Fusione nucleare, l'Italia entra in gioc...
AMD protagonista al CES 2026: il keynote...
Invia il tuo nome intorno alla Luna con ...
Apple presenta i nuovi iPhone 17 Pro e P...
Apple presenta iPhone 17: fotocamera Cen...
Apple annuncia l''impossibilmente sottil...
Apple Watch Series 11 ufficiale: il più ...
Apple svela Watch Ultra 3 e Watch SE 3: ...
AirPods Pro 3 ufficiali: cancellazione d...
Kia EV3 è una Xbox 'che fa brum':...
Nel 2026 cambiano le regole della F1. Me...
Concept THREE: al salone di Monaco Hyund...
Broadcom in tribunale per VMware: dopo u...
Microsoft integra l'intelligenza artific...
3 portatili con GeForce RTX 5070 che fan...
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: 01:49.


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