Nous avons un projet lourd basé sur Java qui nécessitait un interpréteur de script interactif. Après un bon nombre de recherches, nous nous sommes finalement retrouvés avec Jython, une des raisons étant que le groupe du client possède déjà une grande expertise en python, et qu'il est plus facile de leur vendre une API dans un langage proche de celui qu'ils connaissent déjà. . Bon, au début, c'était bien, mais il y a eu un problème: il y a des environnements de déploiement qui sont verrouillés pour les utilisateurs ordinaires (c'est-à-dire non-administrateurs). Ces utilisateurs ordinaires n'ont pas la permission d'écrire n'importe où sur les disques locaux de leurs machines. De plus, leur Home $ (sur Windows) est généralement sur un réseau à latence élevée (souvent 100ms +), et pour couronner le tout, la taille du dossier inscriptible lui-même est généralement inférieure à 10mb. Oui, c'est mégaoctets. Existe-t-il un langage de script Java pouvant fonctionner sans cache? Jython? Sensationnel? etc?
Compte tenu de ces restrictions, il semble que Jython peut ne pas correspondre à la facture. Nous devons être capables de fonctionner sans accès à un cache disque à faible latence, même si cela signifie une légère pénalité de vitesse. Après une recherche dans Google et les forums, il ne semble pas y avoir un moyen de réaliser cela à Jython.
Il y a quelques solutions de contournement évidentes:
- Obtenez le client d'ouvrir leur sécurité. Malheureusement, c'est une grosse bureaucratie et essayer de justifier le changement d'une politique de sécurité à l'échelle de l'entreprise pour fournir des scripts pour un produit n'est pas vraiment une option.
- Mettre en place un disque virtuel et mettre le cache de l'interpréteur de script là. Le problème avec cette approche sur Windows est qu'il implique un niveau d'interférence avec le système d'exploitation qui restera si notre application est en cours d'exécution ou non. (Au moins que je comprends les techniques de le faire)
Alors, voici mon plaidoyer - personne ne sait d'un interprète de script java qui a un mode interactif et ne nécessite pas nécessairement un cache de disque? Il n'a pas nécessairement besoin d'utiliser la syntaxe python, s'il y a un moyen de faire en sorte que les autres, (ie: javaLUA, Groovy, etc.) le fassent, je serais ouvert à ça.
Dans l'installation Standalone jar, cette option est toujours définie sur true (pas sur le fichier d'installation complète). L'inconvénient de cette approche est que vous perdez les fonctionnalités d'analyse de paquet. C'est un non-problème lorsque vous travaillez avec des scripts chargés à partir de fichiers, mais c'est un peu plus gênant lors de l'exécution de l'invite interactive; Pour naviguer dans vos paquets, vous devez vous-même chercher dans le système de fichiers ou faire mémoriser votre structure. Je souhaite conserver l'analyse si possible ... – Decker