因此,當我手動啟動桌面上的 bat 文件時,它可以工作,因為通過其圖標執行 bat 文件使用圖標(文件)的目錄,即“C:\Users\Michael\Desktop”。set CLASSPATH = %~dp0 &:: %~dp0 stands for the directory of the bat filejava InitArray 5 0 4 &:: commentpause當我從其桌面圖標運行上面的 bat 文件(InitArray.bat)時,它可以工作。java InitArray 5 0 4 &:: commentpause當我從其桌面圖標運行上面的 bat 文件(test.bat)時,它可以工作。但是當我從任務調度程序運行 InitArray.bat 時,它使用目錄“C:\WINDOWS\system32”。但這應該不是問題,因為 bat 文件所做的第一件事是“設置 CLASSPATH = C:\Users\Michael\Desktop\”。這是任務調度程序嘗試運行 InitArray.bat 的結果。C:\WINDOWS\system32>set CLASSPATH = C:\Users\Michael\Desktop\C:\WINDOWS\system32>java InitArray 5 0 4Error: Could not find or load main class InitArrayC:\WINDOWS\system32>pausePress any key to continue . . .現在,我知道我可以通過將“C:\Users\Desktop\”添加到環境變量 CLASSPATH 來解決這個問題。但我不應該這樣做,因為我在嘗試運行 java 類之前在我的 bat 文件的第一行中手動將類路徑設置為桌面。
2 回答

蝴蝶刀刀
TA貢獻1801條經驗 獲得超8個贊
設置變量時,從變量名的開頭開始,直到最后輸入的字符用作變量名的一部分,在 . 之前=
和 . 之后的值=
。所以:
set CLASSPATH = Somepath
將以變量名%CLASSPATH %
(注意尾隨空格)和值Somepath
(注意起始空格)結束。
即使你在值之后添加了一個意外的空格,它也會成為它的一部分,所以這 set CLASSPATH=Somepath
將以帶有尾隨空格的值結束Somepath
因此,請始終在 之前或之后不留空格,=
并始終將您的代碼用雙引號括起來以消除空格:
set "CLASSPATH=Somepath"
或者在您的實際情況下,它應該如下所示:
set "CLASSPATH=%~dp0"

嚕嚕噠
TA貢獻1784條經驗 獲得超7個贊
設置 CLASSPATH 以及 java 執行命令或使用 cd 命令更改目錄。
cd /path_to_required_folder // set current directory
java -cp /classpath_location/ test.jar your.package.MainClass [args...]
希望這可以幫助。
添加回答
舉報
0/150
提交
取消