叫我想寫一個簡單的應用程序需要在命令行arguement(這將是一個PowerShell PS1文件),然後運行它時,PowerShell進程掛。所以我已經用了許多不同的方法,並且似乎遇到了問題。如果我試圖從Java中調用的PowerShell,Windows的過程開始,是通過進程管理器可見,但是PowerShell的永遠不會返回,它掛在某種循環通過它的外觀。我使用的命令是:從Java應用程序
Runtime systemRuntime = Runtime.getRuntime();
Process proc = systemRuntime.exec(command);
目前我硬編碼位置PS1的文件,因爲我試圖排除這個可能性是:
String command = "powershell -noprofile -noninteractive \"&C:\\new\\tst.ps1\"";
命令,然後使用執行一個問題。使用進程管理器,我可以看到掛PowerShell進程,並傳遞給它的命令是:
powershell -noprofile -noninteractive "&C:\new\tst.ps1"
,當複製到一個cmd窗口,工作啓動tst.ps1文件。文件本身就是在這個例子非常簡單,我想我可以排除它被凍結的原因,因爲我曾試圖啓動其他PS1的文件相同的行爲就可以看出。
爲了進一步增加混亂,如果我用上面貼的Java代碼,並通過在PowerShell命令,而不是那麼成功運行一個文件名。
我已經沖刷網頁,看到很多人遇到同樣的問題,但似乎沒有人已經張貼有解決方案,我希望對我而言它是一個簡單的監督,很容易固定。
任何提示/提示是讚賞:d
艾倫
感謝您的回覆,我使用Process.getInputStream()調用。我已成立的那一刻,直到我得到這個java類的工作簡直是調用mkdir命令,只是爲了讓我輕鬆地檢查它跑了PS1文件,從它的輸出只應該是標準的東西,PowerShell的splurts出來,如果你用它來創建一個文件夾。奇怪的是我看到輸出很好,如果我從java調用powershell命令mkdir,但是當java直接調用ps1文件而不是命令它掛起?任何其他的想法都會很棒,因爲我希望它有一些非常簡單的東西,我忽略了! – Alan 2011-01-20 14:11:16