0

让我解释一下问题:

语境

我有这个想要更新的应用程序。它调用了我也制作的更新程序 jar。更新程序会杀死运行旧版本的应用程序,并且更新程序会使用新版本启动一个新应用程序。

问题

除非我自己运行 jar,否则新版本不会启动。添加睡眠并没有解决问题。

假设

也许运行更新应用程序的用户是 java 并且它没有运行新版本的权限

我用我的用户运行第一个 java,而不是这个 java 应用程序用“java user”运行 jar,java 用户不能运行新版本。

当我使用运行时运行我的 jar 时,有没有办法可以指定用户。

Runtime.getRuntime().exec("C://Temp//myapp.jar");
4

1 回答 1

0

如果您使用的是 Windows 环境,尝试以下可能会帮助您解决问题

在 windows system32 路径上尝试该命令

runas /showtrustlevels

你应该得到如下内容:

C:\Windows\system32>runas /showtrustlevels
The following trust levels are available on your system:
0x20000 (Basic User)

然后,您将获取“基本用户”的值并运行以下内容来启动 jar:

runas /trustlevel:0x20000 "java -jar yourfileName.jar"

或者你可以试试这个链接它可能有用

于 2013-02-16T00:53:05.693 回答