簡體   English   中英

即使jar在classpath上,也無法找到類異常/調試classpath問題

[英]Class not found exception even if the jar is on the classpath / debugging classpath problems

我很困惑,我嘗試像這樣運行我的簡單程序:

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和其他地方閱讀了數十個答案,但沒有找到答案。

一分錢終於掉了。

問題在於,主目錄“〜”引用除了在類路徑中的第一個條目外不起作用,這實際上使我偏離了軌道。 因為它適用於第一個條目,所以我認為它將適用於其他條目。

問題來自(並且很容易想到),主目錄路徑擴展是由外殼程序完成的,對於外殼程序,整個類路徑條目看起來像一個參數,因此擴展僅在該參數的開頭發生一次。

我通過編寫以下簡單的bash腳本確認了這一點:

#!/bin/bash 
 for i; do 
    echo $i 
 done

將其保存為“測試”並嘗試這樣的命令行:

./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

確認診斷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM