Не удалось связать со стандартной библиотекой Ocaml-java (или Cafesterol)

Я новый пользователь Ocaml-java (или Cafesterol), который компилирует примитивную программу Ocaml в исполняемый файл jar, который разрешен для запуска на JVM. Однако, когда я пытаюсь скомпилировать тестовую программу в исполняемый файл jar, я получаю следующую информацию об ошибке:

>java -jar ~/ocaml-project/ocamljava-bin-1.4/bin/ocamljava.jar -standalone regexdna.ml -o         regexdna.jar
File "regexdna.ml", line 1, characters 0-1:
Error: No implementations provided for the following modules:
     Str referenced from regexdna.cmj
     Unix referenced from regexdna.cmj

Кажется, модуль Str и Unix отсутствует в Ocaml-java. Однако str.jar и unix.jar существуют в ~/ocaml-project/ocamljava-bin-1.4/lib/others/, когда я устанавливаю Ocaml-java, и в этих банках у нас есть Str.class и Unix.class. (Я предполагаю, что этот каталог находится на пути к стандартной библиотеке Ocaml-java, поэтому он должен быть включен в путь поиска по умолчанию)

Может ли любой пользователь Ocaml-java рассказать мне, как Ocaml-java выполняет поиск библиотек зависимостей?


person fafgod    schedule 17.12.2013    source источник


Ответы (1)


Цитируя Ксавьера Клерка по этому поводу:

Что ж, это должно работать, но вы должны явно передать указанную библиотеку (так же, как в vanilla OCaml). Приведение в вашем случае к:

$ /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java -jar ~/opt/ocamljava-2.0-early-access9/lib/ocamljava.jar str.cmja regexdna.ml

Обратите внимание, что я использую последнюю предварительную версию ocamljava.

person ygrek    schedule 17.01.2014