我需要執行一個net use命令,該命令寫入批處理文件以啓用驅動器。批處理文件如下:執行網絡使用命令
net use * /delete /Y
net use l: \\<windows drive name> /user:<domain>\<username> <password>
上面的批處理文件爲我啓用了一個驅動器,並將它作爲L:驅動器顯示給我。 我需要通過java代碼執行這個批處理文件,然後將一些文件寫入這個驅動器。
我使用下面的代碼來執行這個批處理文件:
String[] array = { "cmd", "/C", "start", "C:/file.bat" };
Runtime.getRuntime().exec(array);
問題是,當我嘗試訪問驅動器將它給了我未發現異常路徑的文件。有時它運行,有時它不運行。
朋友們可以幫助我瞭解問題出在哪裏。我正在執行什麼錯誤的步驟。如果我不清楚我的問題,請告訴我。
這聽起來很合理! – demaniak
@Andreas:謝謝你的回覆。它爲我工作。不過,我想在此更新一件事。我第一次運行它停滯的代碼,我不得不強行停止執行。之後,我重新運行它的代碼。我再次運行它,然後運行它。 因此,擔心的是我必須在應用程序中使用這個邏輯,我如何確保它在每次調用時都能運行。 –
您需要添加某種監控才能確保該命令在特定時間範圍內完成,否則將終止並重新執行該命令。您可以將其添加到您的代碼中(例如通過實施Watchdog線程),但如果可能的話,我會查看@demaniak提到的Apache Commons Exec項目,該項目提供了這種開箱即用的監控。 –