當我嘗試在Windows上以編程方式運行java -jar
命令時,發生了一些奇怪的事情。錯誤:無法找到或加載主類?jar
當運行這樣的命令:
Process p = Runtime.getRuntime().exec(cmd); //cmd string is ok
p.waitFor();
我得到的錯誤
Error: Could not find or load main class �jar
的cmd
VAR構造是這樣的:
cmd = String.format("java –jar %s –o win -i %s -n %s -d %s -s %s", jarLocation, param1, param2, tgtFilePath, srcFilePath);
我試着調試這個問題,所以我複製粘貼命令到CMD並得到相同的錯誤。但是,當我手動鍵入而不復制粘貼時,一切正常。
當獲得每個String我得到的字節數:
字節生成的字符串的:
[106, 97, 118, 97, 32, -30, -128, -109, 106, 97, 114, 32, 110, 112, 116, 95, 108, 105, 99, 101, 110, 115, 101, 46, 106, 97, 114, 32, -30, -128, -109, 111, 32, 119, 105, 110, 32, 45, 105, 32, 104, 111, 115, 116, 105, 100, 55, 56, 57, 48, 49, 32, 45, 110, 32, 104, 111, 115, 116, 110, 97, 109, 101, 32, 45, 100, 32, 108, 105, 99, 101, 110, 99, 101, 70, 105, 108, 101, 45, 105, 110, 112, 117, 116, 76, 105, 99, 101, 110, 99, 101, 45, 114, 101, 115, 117, 108, 116, 46, 100, 97, 116, 32, 45, 115, 32, 108, 105, 99, 101, 110, 99, 101, 70, 105, 108, 101, 45, 105, 110, 112, 117, 116, 76, 105, 99, 101, 110, 99, 101]
字節硬編碼串的:
[106, 97, 118, 97, 32, 45, 106, 97, 114, 32, 110, 112, 116, 95, 108, 105, 99, 101, 110, 115, 101, 46, 106, 97, 114, 32, 45, 111, 32, 119, 105, 110, 32, 45, 105, 32, 104, 111, 115, 116, 105, 100, 55, 56, 57, 48, 49, 32, 45, 110, 32, 104, 111, 115, 116, 110, 97, 109, 101, 32, 45, 100, 32, 108, 105, 99, 101, 110, 99, 101, 70, 105, 108, 101, 45, 105, 110, 112, 117, 116, 76, 105, 99, 101, 110, 99, 101, 45, 114, 101, 115, 117, 108, 116, 46, 100, 97, 116, 32, 45, 115, 32, 108, 105, 99, 101, 110, 99, 101, 70, 105, 108, 101, 45, 105, 110, 112, 117, 116, 76, 105, 99, 101, 110, 99, 101]
的jarLocation是一個參數,該參數已經被硬編碼並且沒有被接收爲web服務參數。
什麼會導致這樣的問題?
你的清單文件如何? – Stultuske
'當我手動鍵入而不復制粘貼時,一切正常工作正常'是什麼意思? –
我正在運行的是導致此問題的是Spring Web服務。那麼你的意思是pom.xml嗎?應該在那裏? –