我很难过,我试着按照这样的方式运行我的简单程序:
java -cp ~/FirmwareUpdate/bin:~/PureJavaHidApi/bin/purejavahidapi.jar:~/PureJavaHidApi/lib/jna-4.0.0.jar Test
我得到了
Exception in thread "main" java.lang.NoClassDefFoundError: purejavahidapi/InputReportListener
在代码中首次访问该类的位置。
我已经在SO和其他地方阅读过几十个答案,但没有找到答案。
答案 0 :(得分:0)
便士终于放弃了。
问题是主目录'〜'引用不起作用,除了类路径中的第一个条目,它真的让我离开轨道。因为它为第一个条目工作,我认为它适用于其他人。
问题来自(事后很容易看出)主目录路径扩展由shell和shell完成,整个类路径条目看起来像一个参数,因此扩展只在开始时发生一次论证。
我通过编写这个简单的bash脚本来证实这一点:
#!/bin/bash
for i; do
echo $i
done
将其保存为' test'并尝试了我的命令行:
./test -cp ~/FirmwareUpdate/bin:~/PureJavaHidApi/bin/purejavahidapi.jar:~/PureJavaHidApi/lib/jna-4.0.0.jar Test
输出:
-cp
/Users/nyholku/FirmwareUpdate/bin:~/PureJavaHidApi/bin/purejavahidapi.jar:~/PureJavaHidApi/lib/jna-4.0.0.jar
Test
确认诊断。