簡體   English   中英

Runtime.exec 以非管理員身份運行

[英]Runtime.exec run as Non Admin

我有一個可以自我更新的 Java 應用程序。

Java 應用程序首先以非管理員身份運行,如果您想更新,它將執行我創建的指向另一個的.lnk 快捷方式。jar 文件專門用於更新(但具有管理員訪問權限)。

指向 .jar 更新程序的 .lnk 快捷方式通過在此處使用此答案請求管理員權限 >> https://stackoverflow.com/a/30028948/1862452

更新主 jar 后,我希望 .jar 更新程序再次運行 main.jar 但我希望它是非管理員。 我該怎么做呢? 它當前以管理員身份運行,因為更新程序 jar 當前以管理員身份運行

我以不同的方式解決了我的問題。

當用戶想要更新 main.jar 時,它會執行兩次Runtime.exec() 第一個調用 cmd 並為請求管理員訪問權限的更新程序執行 .lnk 快捷方式。 第二個是更新程序的觀察者。jar window。

The watcher.jar file executes a windows command tasklist /fi "Windowtitle eq <JAR UPDATER WINDOW NAME>" every so often (let's say every 1s) and count the lines of the output. 它有2個狀態

1)檢測更新程序正在運行(output的行數> 1)
2) Detect Updater is dead (output的行數== 1)

2個狀態后,表示main.jar已經更新,更新器死機。 然后它調用 main.jar。

由於這個 watcher.jar 是以非管理員身份調用的,因此它也會以非管理員身份調用 main.jar。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM