Собственный доступ к Java в JDK 1.3 - PullRequest
0 голосов
/ 22 мая 2011

Я пытаюсь интегрировать JNA в приложение JDK 1.3. На страницах JNA есть следующие темы:

Поддерживается в 1.4 или более поздних версиях JVM. (более ранние виртуальные машины могут работать с заглушенным NIO поддержка)

Мне удалось портировать источники JNA на JDK 1.3, удалив все ссылки на java.nio. Мне не нужен например java.nio.Buffer.

Однако библиотеки JNA DLL скомпилированы для использования типов Java NIO и жалуются:

JNA: проблемы с загрузкой идентификаторов ядра: java.nio.Buffer

Что мне нужно сделать, чтобы JNA работала в JDK 1.3? Что означает это «может работать с поддержкой NIO»?

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

Существует ли какой-либо другой способ вызова нативной DLL в Java (не JNI, называемые DLL с закрытым исходным кодом и несовместимые с JNI).

Ответы [ 2 ]

5 голосов
/ 22 мая 2011

В документах предлагается, чтобы вы написали несколько фальшивых java.nio классов и поместили их в bootclasspath, а затем не использовали ничего, требующего java.nio. Вы не должны изменять исходный код JNA или редактировать собственный код.

4 голосов
/ 22 мая 2011

JDK 1,3?Это просто смешно из-за поддержки , если только вы не работаете в Solaris 8. EOL была запущена семь лет назад и была завершена, когда JDK 6 стала доступна 6 ноября-2006.Это почти пять лет назад .

Лично я думаю, что ваши усилия будут лучше потрачены на перенос кода на более современный JDK.JNA говорит вам, что для этого требуется NIO.Я учел бы вызов и порт от JDK 1.3.

...