DOMANDA Compilare un progetto java in un file jar

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
Ciao a tutti, dopo qualche giorno di programmazione su un progetto l'ho finalmente finito, e volevo compilarlo in un unico eseguibile, però ho sottovalutato questa parte.
So come compilare un file .java in un file .class, ma non riesco a capire come compilare tutto in un .jar e poi in un eseguibile. Ogni volta che provo ad eseguire il .jar mi dice che non trova il main, e neanche quando provo ad eseguire il file Main.class.
Sto smattando più qui che ieri in una sessione di debug.

EDIT: specifico che ho mosso i file per una questione di ordine in una cartella con lo stesso nome ma in una posizione diversa. Da allora sono cominciati i problemi
 
Ultima modifica:

Skills07

Head of Development
Staff Forum
Utente Èlite
35,435
11,501
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
Stai usando spring boot con maven?
 

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
No, non avevo usato nessuno settaggio per il progetto. Infatti s'è visto poi il casino.

Comunque per la compilazione ho risolto, ho rifatto tutto su intellij e ho fatto compilare a lui.
Adesso ho il mio jar, e mi chiedevo se è possibile compilarlo in un eseguibile nativo
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,435
11,501
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
E ti sto chiedendo usi Java Spring Boot con maven? perchè se si basta settare una proprietà nel pom.xml recarsi della cartella del progetto e fare ad esempio:

Codice:
mvnw clean package -Pproduction
che ti crea il JAR
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,553
12,943
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
Grazie, sono riuscito a fare il jar. Siccome devo condividerlo con una persona che non ha idea di cosa siano jre, jvm ecc c'è modo di convertirlo in eseguibile? Tipo .exe
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,553
12,943
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
  • Mi piace
Reazioni: Hero467

BAT

Moderatore
Staff Forum
Utente Èlite
22,944
11,580
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Grazie, sono riuscito a fare il jar. Siccome devo condividerlo con una persona che non ha idea di cosa siano jre, jvm ecc c'è modo di convertirlo in eseguibile? Tipo .exe
non devi convertire, gli devi far installare il jre punto e basta, l'applicazione partirà facendoci doppio click sopra esattamente come fa doppio click su un .exe
altrimenti devi impostare un progetto nell'IDE e fare come ti ha già detto @Skills07 , il .jar o l'eseguibile te lo crea l'IDE a seconda di come hai programmato l'applicazione, quale tipo di progetto fai dipende da te, per esempio se usi un progetto Gradle invece di Maven+SpringBoot, l'applicazione te la crea Gradle copiando direttamente tutti i file necessari e impostando un file .BAT che serve a far partire il tutto (sul .bat ci fai doppio click sopra e parte)
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,435
11,501
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
@Hero467 perdonami non puoi non avere usato nulla, dipende da che JAVA stai usando.
Java è un linguaggio di programmazione che utilizza diverse interpretazioni.
Si puo' scrivere Java con SPRING BOOT + Maven, oppure Java con .gradle (ad esempio se scrivi app android).
Java nativo con il classpath (esempio progetto classico scritto con Eclipse o Intellj).
Un jar non è bene convertirlo in EXE, ma basta semplicemente installare il Java runtime sul pc del tuo amico ed esegue direttamente il JAR con un doppio click
 

Hero467

Utente Attivo
689
404
OS
I use ARCH btw
@Hero467 perdonami non puoi non avere usato nulla, dipende da che JAVA stai usando.
Java è un linguaggio di programmazione che utilizza diverse interpretazioni.
Si puo' scrivere Java con SPRING BOOT + Maven, oppure Java con .gradle (ad esempio se scrivi app android).
Java nativo con il classpath (esempio progetto classico scritto con Eclipse o Intellj).
Un jar non è bene convertirlo in EXE, ma basta semplicemente installare il Java runtime sul pc del tuo amico ed esegue direttamente il JAR con un doppio click
Allora può essere che abbia fatto tutto da solo. L’unica cosa che ho fatto io è stato entrare nella cartella con tutti i miei programmi, creare una subdirectory e fare nuovo file chiamandolo Main.java. Poi ho creato tutte le varie classi che mi servivano nello stesso identico modo. Dopo aver spostato tutto e compilato non funzionava niente. Ora però lo sto rifacendo con maven
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!