Debian
在 Debian 上編譯(?)java 包
我注意到在 Debian 上尋找 jinput 庫(我相信這裡的“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++,如果有人可以確認或否認……
libjinput-java
並且libjinput-jni
是從同一來源建構的。該-java
包包含與體系結構無關的純 Java JAR,並且該-jni
包包含特定於體系結構的庫,該庫提供 Java 包所需的本機功能。請注意,libjinput-java
取決於libjinput-jni
:它們不是 jinput 的兩個不同實現,它們是 jinput 的兩個部分,並且兩者都是依賴於 jinput 的軟體工作所必需的。包分離只是將與體系結構無關的文件與特定於體系結構的文件分開的一種情況。
(JNI 是Java Native Interface,它允許在 JVM 上執行的程序呼叫本地庫中的程式碼。)