È possibile compilare Java in codice macchina? (Non bytecode)

31

Puoi avere Java compilato direttamente nel codice macchina?

Voglio farlo così ho il controllo su quali piattaforme sono usate e non conosco C, C ++ ecc.

    
posta Russell 02.02.2012 - 15:51
fonte

4 risposte

35

Sembra che il GNU Compiler for Java possa convertire il codice sorgente Java in un bytecode o codice macchina Java. Può anche convertire un codice bytecode Java esistente in codice macchina. Tuttavia, le ultime notizie risalgono al 2009, quindi non sono sicuro di quanto sia attuale e se sia in grado di gestire le ultime funzionalità del linguaggio Java.

    
risposta data 02.02.2012 - 15:58
fonte
12

Non rispondere in modo abbastanza diretto all'OP, ma forse è un aspetto interessante. Java può essere eseguito in tre modalità:

  1. Misto (predefinito) - Una combinazione di codice Interpretato e Computer compilato (macchina compilata == compilata da JIT in fase di runtime)
  2. Con -Xint flag - Interpretato - Solo codice Byte
  3. Con -Xcomp flag - Compilato - macchina compilata
risposta data 03.02.2012 - 00:58
fonte
7

Potrebbe essere meglio rilevare il sistema operativo usando System.getProperty ( “os.name”) . Ciò ti consentirebbe di scegliere di supportare più di un sistema operativo, ma di escluderne altri.

    
risposta data 02.02.2012 - 16:11
fonte
2

È ora: GraalVM ti consente di compilare i tuoi programmi in anticipo in un eseguibile nativo. Dai un'occhiata alla funzione Immagine nativa :

  • Riepilogo
    link

  • Demo: immagini native per l'avvio più veloce
    link

  • Dettagliato: "Compilazione anticipata"
    link

Domanda correlata: 'Posso compilare Java nel codice nativo?'      link

P. S. GCJ non viene più mantenuto.
Fonte: "The Deletion of gcj" link

    
risposta data 09.10.2018 - 02:10
fonte

Leggi altre domande sui tag