essendo Java portabile non puoi fare un eseguibile essendo solo per il sistema per cui è compilato, ma devi fare un file jar, che è un zip eseguibile praticamente se associato a javaw.
Il problema è che i file jar hanno grossi limit, ad esempio i programmi a console non vanno(o almeno non è ho mai visti e non sono mai riuscito a farne funzionare), bisogna associare il programma, niente icone ecc... è per questo che esistono dei programmi(uso exe4j, a pagamento ma ne trovi anche di gratuiti) che creano un exe wapper che contiene il jar e automaticamente cerca la JVM e apre il programma, se non c'è l'interprete avverte; ci sono alcuni programmi di questo genere che inseriscono la JVM dentro al tuo programma ma viene una cosa enorme, altri che traducono Java a vero codice nativo(solo per programmi a console e con altre limitazioni).
Sennò fai il jar, un bat per win e un sh per lin.
![]()