Я заметил, что при поиске библиотеки jinput в Debian (я полагаю, что «j» здесь подразумевает, что это специфичная для Java библиотека, а не простая оболочка), есть два пакета, которые могут подойти:
libjinput-java/stable 20100502+dfsg-7 all
Java Game Controller API
libjinput-jni/stable 20100502+dfsg-7 armhf
Java Game Controller API (jni)
Обратите внимание, что это система ARM. Я знаю, что в других языках иногда есть две реализации чего-то, более быстрая, которая требует компиляции, и "чистая какая-то" (в данном случае java), которая не требует. Последнее кажется маловероятной возможностью здесь, но я не знаю наверняка; тот факт, что первая появляется как пакет, применимый ко "всем" платформам, интересен по сравнению со второй, которая является списком, специфичным для архитектуры.
Так в чем же разница в номенклатуре Debian между -java
пакетом и -jni
пакетом?
Теперь я предполагаю, что -jni
пакет позволяет использовать эту библиотеку «в обратном порядке», т. е. из C/C++, если кто-то может это подтвердить или опровергнуть...
решение1
libjinput-java
и libjinput-jni
построены изтот же источник. -java
Пакет содержит архитектурно-независимый, чистый Java JAR, а также -jni
пакет содержит архитектурно-специфическую библиотеку, которая обеспечивает собственную функциональность, требуемую пакетом Java. Обратите внимание, чтоlibjinput-java
зависит от libjinput-jni
: это не две разные реализации jinput, это две части jinput, и обе они необходимы для работы программного обеспечения, зависящего от jinput.
Разделение пакетов — это просто случай разделения файлов, не зависящих от архитектуры, от файлов, зависящих от архитектуры.
(JNI — этоСобственный интерфейс Java, что позволяет программам, работающим на JVM, вызывать код в собственных библиотеках.)