树莓派3B+(Raspbian64)下jInput找不到jinput-linux64.so问题求助
解决树莓派Raspbian64上jInput的库加载与控制器识别问题
一、修复jinput-linux64库找不到的问题
Java加载本地库时会自动给库名加上lib前缀,你之前创建libjinput-linux64.so软链接的思路是对的,只需确保链接路径正确且被Java识别:
- 先定位apt安装的
libjinput.so位置:
通常结果为find /usr -name libjinput.so/usr/lib/aarch64-linux-gnu/libjinput.so - 将其软链接到Java的
java.library.path指定目录(比如你的/opt/java/libs/):sudo ln -s /usr/lib/aarch64-linux-gnu/libjinput.so /opt/java/libs/libjinput-linux64.so - 若不想手动指定路径,也可把软链接放到Java默认扫描的系统JNI目录:
这样运行程序时无需额外设置sudo ln -s /usr/lib/aarch64-linux-gnu/libjinput.so /usr/lib/jni/libjinput-linux64.so-Djava.library.path参数。
二、解决按钮显示“unknown”的问题
这个问题是因为jInput缺少对应控制器的映射文件,需手动添加:
- 查看控制器硬件信息,获取厂商和产品ID:
找到你的控制器条目,记录cat /proc/bus/input/devicesVendor=0xXXXX和Product=0xYYYY的值。 - 定位jInput的映射文件目录:
- 若用项目内的jInput包,映射目录通常在
jinput.jar同目录下的linux文件夹; - 若通过apt安装,映射目录一般是
/usr/share/jinput/。
- 若用项目内的jInput包,映射目录通常在
- 在映射目录下创建自定义映射文件(比如
my_controller.properties),格式参考现有文件:vendor_id=0xXXXX product_id=0xYYYY # 按实际按钮/轴编号对应名称 button.0=A键 button.1=B键 axis.0=X轴 axis.1=Y轴 - 重启Java程序,控制器按钮名称即可正常显示。
内容的提问来源于stack exchange,提问作者Landyn J
相关产品推荐
相关产品推荐

