2009-02-08 5 views
3

Я пытался использовать EventMachine и т. Д. С JRuby. Я получаю ошибки о собственных расширениях. Я считаю, что это связано с ограничениями Java. Я думаю, что факт, что я на Windows, еще больше усложняет проблему. Будет разъяснено некоторое разъяснение. Какие расширения могут/не могут использоваться с JRuby? Как я могу сказать? Благодарю.JRuby/Windows и (родные) расширения, как их отличить?

ответ

1

нет действительно простого способа использовать собственные расширения в jruby. родные расширения вызывают c-код, который не может быть вызван в jruby без его реализации в java. кроме того, несколько расширений видят порты jruby, например EventMachine, о которых вы упомянули.

и, насколько я знаю, единственный способ, чтобы увидеть, если вы можете использовать драгоценный камень/расширение с JRuby, чтобы прочитать документацию, попробовать или прочитать источник

2

JRuby не поддерживает собственные расширения, к сожалению, потому что они зависят от конкретных данных памяти и времени выполнения, специфичных для реализации C.
Обычно вы можете найти эквивалентную библиотеку на JVM, которая будет хорошо работать в качестве замены ...

Для завершения LDomagala's answer, вы можете также обратиться к this thread, связанные с тем же «родным расширением» выпуска

Некоторые сценарии установки могут полагаться на RUBY_PLATFORM, чтобы определить, следует ли создавать собственные расширения в зависимости от вашей ОС. Если вы находитесь в окнах, они не будут их строить.

Другой способ избежать встроенной компиляции - использовать ENV var 'NORUBYEXT'.

Но это все еще может потребовать некоторой настройки в сценарии установки рубина ...