Per eseguire qualsiasi codice Java, è necessario che la JVM (Java Virtual Machine) sia installata sul sistema. Sulla maggior parte dei sistemi, questo è installato come parte del JRE (Java Runtime Environment). Gli sviluppatori di solito installano il JDK (Java Development Kit) che è un superset di JRE che include anche compilatori, debugger e strumenti associati.
Esaminando Java SE Technologies a colpo d'occhio di Oracle, si possono vedere gli strumenti aggiuntivi che fanno parte del JDK che non sono forniti con JRE.
Le applet fanno parte del plug-in di runtime dell'applet, il AppletViewer fa parte del JDK. Non è necessario che JDK veda un'applet se l'applet è ospitata su una pagina Web.
Se questo non ha bisogno di essere parte di una pagina web, si dovrebbe invece considerare l'utilizzo di un ambiente indipendente che fa parte del mondo di Java SE. Swing si trova sotto "User Interface Libraries" nel grafico sulla pagina dell'oracolo che rientra sotto JRE.
Scrivere per un Java SE autonomo (piuttosto che un'applet) dovrebbe renderlo più facile da costruire ed eseguire. Vedi Java: applicazione Swing su Wikipedia per ottenere un'idea molto semplice di un'app ciao mondo usando questo struttura. Nota in particolare il metodo public static void main(final String[] args) { ... }
che esiste all'interno della classe - questo è il modo in cui si richiama un'applicazione Java SE.
Se si volesse evitare di richiedere un'installazione separata di una JVM, è possibile che ciò avvenga con varie restrizioni. Il più noto di questi è il pacchetto commerciale Excelsior (non è esattamente 'economico' ). Excelsior compila il codice nativo e include un runtime (il runtime JET) in grado di caricare dinamicamente altri file .class. Esiste anche gcj , sebbene sembri essere ... stantio e senza aggiornamenti recenti (di quattro anni). Leggi la pagina status e nota che probabilmente non si adatta alle tue esigenze (java.awt: Un sacco di il codice esiste, ma non abbastanza per l'uso in applicazioni reali.)
Se stai per scrivere un'applicazione java, la soluzione migliore è avere il JRE (uno non ha bisogno del JDK completo) sul computer di destinazione e costruire per quello. Il JRE non è così grande e potrebbe benissimo essere già sulle macchine di destinazione.