Для чего нужна библиотека Java libjli?

Я использую JNI, чтобы позволить коду C разгрузить некоторую работу, лучше всего выполненную в Java. В этом вопросе я пытался связать библиотеки libjvm и libjli, чтобы мой код работал, но теперь я задаюсь вопросом, нужна ли мне вообще библиотека JLI.

Я не могу найти документацию, в которой четко указано, для чего предназначена библиотека JLI.

Этот другой вопрос SO намекает на то, что JLI - это некоторая библиотека OSX:

#elif defined(__APPLE__)
// jli needs to be loaded on OSX because otherwise the OS tries to run the system Java

Как и этот блог:

При компиляции в OS X очень важно связать библиотеку jli перед библиотекой jvm

Мои вопросы:

  1. Для чего нужна библиотека JLI?
  2. Нужно ли это для разработки C / Java JNI в средах только с RedHat/CentOS (без OSX)?

0 ответов

Для чего нужна библиотека JLI?

В libjli.so содержит интерфейс запуска для подготовки аргументов, передаваемых в командной строке, и запуска виртуальной машины с ними.

Программа запуска main.c - это основная точка входа во все программы Java. Он подготавливает аргументы командной строки C и передает их вJLI_Launchфункция, которая выполняет синтаксический анализ аргументов, загружая виртуальную машину изlibjvm.so, разветвляя первичный поток и затем передавая управление JVM.

Нужен ли он мне для разработки C/Java JNI в средах только RedHat/CentOS (без OSX)?

Очень маловероятно. Если вам нужно, вы, вероятно, делаете что-то не так. По крайней мере, я не могу представить себе какой-либо полезный общий вариант использования.

Другие вопросы по тегам