當我嘗試執行以執行此行時
bash -x ExecutionAuto.bat
我從我的 Lib 檔案夾中收到一條錯誤訊息,說其中一個 jar 無法正常作業。
../Demo_Automatisation/lib/SparseBitSet-1.2.jar: line 1: $'PK\003\004': command not found
../Demo_Automatisation/lib/SparseBitSet-1.2.jar: line 2: $'?\220L': command not found
../Demo_Automatisation/lib/SparseBitSet-1.2.jar: line 8: syntax error near unexpected token `)'
????????0 6&????2<????{?i'???arseBitSet-1.2.jar: line 8: `??6)?*u)?????RP ?rN-p???
?{?eB?M}i??Qa0?{}/?aHU?
'???xQXk)??.'?l3????A?I?|??0A?V???v?)s ????5N???V??v??hH?;"???~Gt D??}|?^?`??"r??d???}7??0t)y???{?W???
java org.testng.TestNG ../Demo_Automatisation/testng.xml
Error: Could not find or load main class org.testng.TestNG
Caused by: java.lang.ClassNotFoundException: org.testng.TestNG
我不知道 jar 檔案是否有問題,因為它在 Windows 中運行良好,但在 linux 中它不起作用。
這是我的 .sh 檔案:
export projectLocation=../Demo_Automatisation
cd $projectLocation
export CLASSPATH=$projectLocation/bin;$projectLocation/lib/*
java org.testng.TestNG $projectLocation/testng.xml
我只是復制了我在互聯網上找到的內容,因為我一開始有一個 .bat 檔案,因為我使用 Windows 確實從 Windows 轉移到 linux 需要我對我的 jar 檔案做些什么?
uj5u.com熱心網友回復:
問題是;在您的類路徑定義中實際上將兩個命令分開,因此它$projectLocation/lib/*被解釋為一個新命令,擴展為 jar 檔案的名稱,并且 shell 嘗試將 jar 檔案作為 shell 腳本執行(這很失敗)。在 Linux 上,類路徑的分隔符是:和不是;(幾乎可以肯定正是出于這個原因)。
換句話說:而不是
export CLASSPATH=$projectLocation/bin;$projectLocation/lib/*
你需要
export CLASSPATH=$projectLocation/bin:$projectLocation/lib/*
作為額外建議:/*inCLASSPATH應該由 Java 而不是shell解釋,所以最好實際參考該值:
export CLASSPATH="$projectLocation/bin:$projectLocation/lib/*"
uj5u.com熱心網友回復:
這projectLocation是更改作業目錄后重用的相對路徑。嘗試使用絕對路徑,也許它會以這種方式修復。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/377760.html
