讓我解釋一下這個問題:使用特定的用戶運行在Java罐子
語境
我有這樣的應用程序,要更新。它會調用我也做過的更新器jar。更新程序會殺死運行舊版本的應用程序,並且更新程序會使用新版本啓動一個新的應用程序。
問題
新版本無法啓動,除非我運行jar我自己。增加睡眠並不能解決問題。
假設
或許運行更新應用程序的用戶是java的,它並沒有權限可運行新版本
我和我的用戶比這個Java應用程序運行運行第一個Java具有「java用戶」和java用戶的jar不能運行新版本。
有沒有一種方法可以指定用戶,當我運行我的jar與運行時。
Runtime.getRuntime().exec("C://Temp//myapp.jar");
Windows或Linux?你的意思是新版本無法啓動? – 2013-02-16 00:46:34
這是在Windows上 這是行不通的: Runtime.getRuntime()。exec(「runas/user:」+ utilisateur +「\」C:\\ somewhere \\ dfs \\ app.exe \「」); Process-proc = Runtime.getRuntime()。exec – user2077369 2013-02-16 00:51:05
MyAppV100需要更新。它通過特定的操作接收命令。它調用更新器,這是一個外部的jar。更新程序殺死MyAppV100並啓動MyAppv200(但它永遠不會啓動,除非手動調用updater):(謝謝! – user2077369 2013-02-16 00:57:28