2009-02-08 6 views
3

J'ai essayé d'utiliser EventMachine etc. avec JRuby. J'ai des erreurs sur les extensions natives. Je crois que cela est dû aux limitations de Java. Je pense que le fait que je sois sur Windows complique encore plus le problème. Des éclaircissements seraient appréciés. Quelles extensions peuvent/ne peuvent pas être utilisées avec JRuby? Comment puis-je le dire? Merci.JRuby/Windows et les extensions (natives) comment les distinguer?

Répondre

1

Il n'y a pas vraiment moyen d'utiliser les extensions natives dans jruby. les extensions natives appellent du code c qui ne peut pas être appelé dans jruby sans l'implémenter dans java. Mis à part cela, quelques extensions voient des ports jruby, par exemple EventMachine que vous avez mentionné.

et pour autant que je sache, la seule façon de voir si vous pouvez utiliser un petit bijou/extension avec JRuby est de lire la documentation, essayez ou lire la source

2

JRuby ne supporte pas les extensions natives, malheureusement, car ils dépendent de la mémoire spécifique et des détails d'exécution spécifiques à l'implémentation C.
Habituellement vous pouvez trouver une bibliothèque équivalente sur la machine virtuelle Java qui fonctionne bien en remplacement ...

Pour compléter LDomagala's answer, vous pouvez également consulter this thread liés à la même question « d'extension native »

Certains scripts d'installation peuvent s'appuyer sur RUBY_PLATFORM pour déterminer s'ils doivent générer les extensions natives en fonction de votre système d'exploitation. Si vous êtes sur Windows, il ne les construira pas.

L'autre façon d'éviter la compilation native est d'utiliser la variable ENV 'NORUBYEXT'.

Mais cela peut encore impliquer quelques ajustements dans le script d'installation ruby ​​...

Questions connexes