Созданный Rawr jar создает ClassDefNotFoundError - PullRequest
0 голосов
/ 14 октября 2010

Я пытаюсь использовать Rawr, чтобы превратить простой 3-файловый проект Ruby в исполняемый файл для запуска в Ubuntu. Я запустил jruby -S rawr install, чтобы создать Rakefile и настроить макет каталога. Все мои .rb файлы находятся в каталоге src в корне проекта. Когда я запускаю jruby -S rake rawr:jar, он компилирует все файлы Ruby и прекрасно создает банку. Затем он помещает его в мой каталог deploy вместе с lib/java/jruby-complete.jar.

Я пытаюсь выполнить банку изнутри deploy с java -jar hg_analyzer.jar. Однако, когда я делаю это, меня приветствует эта ошибка:

Exception in thread "main" <script>:1:in `require': Linkage error loading compiled script; you may need to recompile 'file:/home/marcw/Documents/hg_analyzer/deploy/jar/hg_analyzer.jar!/main.class': java.lang.NoClassDefFoundError: org/jruby/ast/executable/AbstractScript$RuntimeCache (LoadError)
    from <script>:1
    ...internal jruby stack elided...
    from Kernel.require(<script>:1)
    from (unknown).(unknown)(:1)

Я также пытался запустить его как java -cp lib/java/** -jar hg_analyzer.jar, но безрезультатно. Запись Class-Path в файле манифеста банки также выглядит хорошо. main.rb является основным файлом Ruby.

Запуск java с опцией -verbose показывает, что означает , обнаружив JAR-файл jar и загружая его из ожидаемого места.

Есть идеи?

1 Ответ

0 голосов
/ 15 октября 2010

Разобрался!Проблема заключалась в том, что Rawr загружал версию 1.5 среды исполнения JRuby, и у меня в системе была версия 1.4 компилятора.

...