2013-08-01 45 views
0

我們有一個Java應用程序,它是作爲Windows服務運行的。實際上,我們需要調用批處理文件來啓動windows'計算器'應用程序。但我們不能。如果我們不是作爲Windows服務啓動Java應用程序,它工作正常。我已閱讀Calling a batch file from a windows service上的相同文章並完成了以下配置。 「如何從Windows服務調用批處理文件?

」首先安裝服務,給予批處理文件或exe文件適當的路徑,然後進入run-> services.msc->右鍵單擊服務 - > properties-> logon-> check enable service與桌面使其能夠「

之後,我們得到了部分成功,因爲它首先提示許可窗口,如下所示:

回答

1

我建議,而不是打開一個批處理文件,你只要打開calc.exe文件呢?

Runtime.getRuntime().exec("c:\\windows\\System32\\calc.exe", null, new File("c:\\windows\\System32\\calc.exe")); 

編輯:如果您仍然想運行一個批處理文件,使用這樣的:

Runtime.getRuntime().exec("cmd /c start nameOfTheBatchFile.bat"); 

請注意,在exec方法的第二個變量是設置你想要的目錄從該調用該程序。

+0

爲什麼調用'cmd'來調用'start' ro調用批處理?爲什麼不'Runtime.getRuntime()。exec(「nameOfTheBatchFile.bat」);'? –

+0

由於批處理文件不是可執行文件,它在cmd下運行 –

+0

好吧,但爲什麼不只是'Runtime.getRuntime().exec(「cmd/c nameOfTheBatchFile.bat」);''或Runtime.getRuntime()。exec (「start nameOfTheBatchFile.bat」);'?爲什麼3個進程? –

相關問題