Java: incorporare i motori di script in un'applicazione: JSR 223 (Scriptengine) è ancora una buona soluzione?

StackOverflow https://stackoverflow.com/questions/5358923

  •  27-10-2019
  •  | 
  •  

Domanda

Voglio usare una o molte lingue di script nella mia applicazione Java.

Da Sito web JRUBY Ho scoperto che ci sono 3 modi:

  1. Utilizzando Java 6 (usando JSR 223: Scripting)
  2. Incorporamento con il framework di scripting di fagioli (BSF)
  3. Chiamando direttamente $ your_scripting_engine $ apis

Dato che ho bisogno di supportare più di 1 motore di script, non credo che l'opzione 3 sarà abbastanza buona.

Quando cerchi la soluzione 1. JSR 223: Scripting, inizio a cercare l'archivio ZIP contenente tutta l'integrazione del motore di script

Download and unzip the collection of jars from the documents and files section of the site (jsr223-engines.tar.gz or jsr223-engines.zip).

Ma questo file non è affatto in rete (sezione Dowload di Project Home è vuoto. Se voglio posso scaricare le fonti e costruire la mia integrazione di Enngines necessaria. Il codice delle fonti sembrano vecchi (2+ anni per quello che ho visto)

Il JSR 223 è ancora vivo e una buona soluzione da scegliere? In caso contrario, il framework di script di fagioli è una buona alternativa? Quest'ultimo ha una pagina di documentazione molto scarsa e sono supportate solo poche lingue di script (ma supporta la maggior parte della lingua che voglio avere) ...

È stato utile?

Soluzione

Ho incorporato Rhino sandboxed in un paio di applicazioni e ho trovato molto più facile lavorare direttamente con il codice del rinoceronte.

A meno che tu non voglia incorporare più lingue diverse o desideri distribuire su VM che hanno già in atto jar JSR 223, allora non credo che trarrai molto beneficio dal livello extra di astrazione.

Suggerirei vivamente di prendere in considerazione il sandboxing quando scegli una lingua da incorporare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top