2010-09-25 15 views
0

Je considère l'implémentation d'un ScriptingEngine à la JSR223 pour Visual Basic ou VBScript (car je ne connais aucune implémentation, sauf le moteur BSF abandonné d'IBM). Je sais qu'il me faudra de la programmation native, mais je ne sais pas par où commencer. Une idée serait d'intégrer l'hôte Windows Scripting dans Java, peut-être en l'utilisant comme un contrôle actif, mais je ne peux pas en trouver. Existe-t-il une API publique pour l'hôte de script Windows? D'autres idées?Visual Basic ou VBScript en tant que moteur de script Java

Répondre

1

Oui, il est possible d'intégrer Windows Scripting dans Java, mais ce n'est pas trivial. La documentation pour le Windows Script Interfaces est disponible sur MSDN. Les interfaces qui vous intéressent le plus sont IActiveScript, IActiveScriptParse et IActiveScriptSite.

Il existe de nombreux exemples disponibles via une recherche Google, mais pas beaucoup en Java. Ces guys ont des exemples, mais ils utilisent leur produit Java2Com. Bien que n'étant pas spécifique à Java, Dr. Dobbs a fait un series of articles sur l'implémentation de ces interfaces dans .NET. Je pense que vous pourriez trouver l'information utile.

Il y avait également un ActiveX script control fourni avec VB6, qui facilitait l'ajout de scripts à votre application. Il y a un exemple here de l'utiliser à partir de Java, en utilisant le pont Java vers COM JACOB.

+0

+1 Bonne recherche, merci pour cela. Je ne connaissais pas les objets Neva qui ont déjà été implémentés, donc je vais payer le prix de 239 $ si j'en ai vraiment besoin (je ne serai pas capable d'exposer mes objets Java moins cher, je pense). – Daniel

0

Ce que vous demandez essentiellement, c'est comment intégrer un programme .NET dans une JVM. C'est une tâche non triviale et peut être beaucoup plus grande que ce à quoi vous vous attendez.

Le moteur JavaScript JSR-233 est disponible par défaut dans Sun Java 6 et vous pouvez télécharger des adaptateurs pour de nombreuses autres langues au https://scripting.dev.java.net/. Vous pouvez toujours avoir beaucoup de puissance tout en restant dans la JVM.

Il semble également que BSF n'a pas été abandonné, mais donné à Apache Jakarta. http://jakarta.apache.org/bsf/. Cependant, je ne vois aucun support VIsual Basic sur la page.

+0

Je ne veux pas .NET en Java, juste le support de script qui était disponible longtemps avant .NET! Et l'ActiveScriptingEngine n'est plus dans BSF, puisqu'il a été donné à Apache, c'est correct. – Daniel