2015-01-21 58 views
0

我正在編寫一個完全可移植的應用程序。我決定使用PostgreSQL portable進行持久化。我這樣從Java啓動它:在Windows上運行並「隱藏」Java中的PostgreSQL便攜版

try { 
    Process p = Runtime 
       .getRuntime() 
       .exec(new String[] { "C:\\PATCH\\PostgreSQLPortable-9.3.exe" }); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

問題是命令提示符(控制檯)出現。我需要毫無痕跡地開始它。甚至沒有啓動並關閉,更像是在後臺運行。以某種方式可能嗎?

+0

我對Postgres可移植性一無所知,但通常使用'pg_ctl.exe'來啓動數據庫服務器。如果我從命令行執行該操作,它沒有附帶的控制檯窗口 – 2015-01-21 12:08:01

+0

看看apache commons exec它通過Java調用解決了很多常見的問題。 – kulatamicuda 2015-01-21 12:14:12

+1

使用可嵌入的數據庫...像H2,德比,HSQL,... – Stefan 2015-01-21 12:20:12

回答

0

的Java不具有開箱即用的支持來執行這樣的方式應用的,但是Apache Commons Daemon可以用來安裝特定的EXE作爲服務和啓動,並且當您從您的應用程序退出,你可以停止和刪除服務。