Java получает ошибку при выполнении сценария Ruby; Терминал не - PullRequest
1 голос
/ 25 марта 2012

Это раздвоенная проблема из этого вопроса: flac: "ОШИБКА: входной файл имеет тег ID3v2" (это не так) .Я решил первоначальную проблему там, но это не решило одну проблему, с которой я столкнулся, поэтому я собираюсь представить ее здесь отдельно.

Я использую рубиновый гем под названием speech2text для преобразования аудиофайл в (приблизительный) текст.Вызов его в командной строке работает нормально (Mac Terminal).Тем не менее, следующий код Java:

String[] cmd = {"speech2text", "tmp/audio/pop-test-audio.wav"};

    ProcessBuilder builder = new ProcessBuilder(cmd);
    builder.redirectErrorStream(true);
    Process process = builder.start();

Получает это обратно только из потоков процесса:

/Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_inspector.rb:50:in `initialize': undefined method `first' for nil:NilClass (NoMethodError)
from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_splitter.rb:77:in `new'
from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_splitter.rb:77:in `initialize'
from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_to_text.rb:15:in `new'
from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/lib/speech/audio_to_text.rb:15:in `to_text'
from /Library/Ruby/Gems/1.8/gems/speech2text-0.3.4/bin/speech2text:11
from /usr/bin/speech2text:19:in `load'
from /usr/bin/speech2text:19

Я ничего не знаю о Ruby, отсюда и мое легкое использование библиотекичерез Java.Я действительно не могу сказать, что здесь происходит, но я знаю, что это работает, когда выполняется точно так же, как из Терминала.Кто-нибудь знает, что может быть причиной этого?

Ответы [ 2 ]

0 голосов
/ 25 марта 2012

Вы также можете отказаться от терминала и попробовать JRuby . Он так же быстр, как и обычная виртуальная машина Ruby, и его легче интегрировать с Java.

0 голосов
/ 25 марта 2012

У меня были похожие проблемы при попытке запустить jslint.js (для node.js). На самом деле я сначала лучше запустил bash, чем печатал написание в моих командах таким образом, но, насколько я помню, у меня были проблемы.

В основном проблема заключается в том, что выполнение вещей с Java может завершиться неудачей, если настройки среды, которые в противном случае были бы доступны, не были загружены. Это может быть трудно решить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...