當我嘗試執行以執行此行時
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 文件做些什麼?
問題是;
在您的類路徑定義中實際上將兩個命令分開,因此它$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/*"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句