|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
[Java] non riesco a lanciare i programmi su altri computer senza SDK
Dopo aver compilato i sorgenti, se provo a far partire i .class su altri pc che non hanno installato l'SDK, ma solamente la JVM, mi dà un errore... purtroppo non ricordo il messaggio esatto ma mi sembra che non trovava la definizione della classe o qualcosa del genere...
sapete come si può fare?
__________________
ka0s |
|
|
|
|
|
#2 |
|
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16214
|
Anzitutto: JVM Sun o JVM Microsoft?
Poi: per far partire i .class da prompt, devono essere configurate opportunamente certe variabili d'ambiente. In particolare, PATH deve contenere il percorso completo della sottocartella "bin" della JVM. Inoltre, deve essere configurata opportunamente una variabile CLASSPATH, in modo che contenga (se ricordo bene) il percorso completo della cartella di installazione di Java.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
|
|
|
|
#3 | ||
|
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
Quote:
Quote:
Non è che bisogna specificare qualcosa nei sorgenti prima di compilarli?
__________________
ka0s |
||
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 5206
|
Quote:
Quote:
Comunque è altamente consigliabile mettere almeno in PATH la bin del JDK o JRE che sia.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%) Java Versions Cheat Sheet |
||
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
Io dal DOS (dalla cartella dove ci sono i file .class da eseguire) faccio così:
Codice:
C:\>C:\Programmi\Java\jre1.5.0_06\bin\java.exe Nomefile l'errore che mi dà è il seguente: Codice:
Exception in thread "main" java.lang.NoClassDefFoundError: Nomefile In teoria dovrebbe funzionare... sennò come si può fare per dare ad altre persone il proprio programma e farglielo usare? (senza impostare classpath o altro, ma avendo solo la jre installata) Altra domanda
__________________
ka0s |
|
|
|
|
|
#6 | ||
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 5206
|
Quote:
Prova anche: java -cp . NomeClasse (in questo modo si forza il classpath ad essere "."). Quote:
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%) Java Versions Cheat Sheet |
||
|
|
|
|
|
#7 | ||
|
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
Quote:
grazie!!! Quote:
__________________
ka0s |
||
|
|
|
|
|
#8 | ||
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 5206
|
Quote:
A te la scelta! Quote:
Quindi devi fare così: devi creare un file chiamato come vuoi (es. Manifest) con dentro la riga: Main-Class: nome-tua-classe-main poi fai: jar cvmf Manifest nomefile.jar ...file.... A quel punto il nome della classe da avviare viene messo dentro il MANIFEST.MF nel jar.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%) Java Versions Cheat Sheet |
||
|
|
|
|
|
#9 | ||
|
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
Quote:
Quote:
Codice:
java.io.FileNotFoundException: nomefile.jar (Impossibile trovare il file specificato) at java.io.FileInputStream.open(NativeMethod) (...ecc...)
__________________
ka0s |
||
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 5206
|
Quote:
Potresti elencare cosa hai fatto esattamente (i comandi che hai eseguito)?
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%) Java Versions Cheat Sheet |
|
|
|
|
|
|
#11 | |
|
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
Quote:
- ho creato un file Manifest con dentro scritto: Codice:
Main-Class: Start - ho provato a creare il jar così: Codice:
jar cvmf NomeFile.jar Manifest *.class
__________________
ka0s |
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 5206
|
Quote:
jar cvmf Manifest NomeFile.jar *.class oppure jar cvfm NomeFile.jar Manifest *.class L'ordine con cui il file jar e il manifest devono apparire nel comando è importante e dipende dall'ordine con cui sono specificati 'm' ed 'f'.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%) Java Versions Cheat Sheet |
|
|
|
|
|
|
#13 | |
|
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
Quote:
adesso infatti lo crea... però, ehm, non mi piacchiare ( java -jar Nomefile.jar ma mi dà il solito errore (Failed to load Main-Class manifest attribute from...). Se vado a guardare nel file MANIFEST.MF all'interno del jar c'è scritto solo: Manifest-Version: 1.0 Created-By: 1.5.0_06 (Sun Microsystems Inc.)
__________________
ka0s |
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 5206
|
Quote:
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%) Java Versions Cheat Sheet |
|
|
|
|
|
|
#15 | |
|
Member
Iscritto dal: Nov 2005
Messaggi: 151
|
Quote:
__________________
ka0s |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:17.



















