3

我有一个可运行的 jar 文件,我从它开始

java -jar myFile.jar

在 Windows 上。一位客户说他在启动应用程序时遇到了问题(这是包装到可执行文件中的这个 jar 文件)。我怀疑它与管理员权限有关。所以我想在没有管理员权限的情况下运行我的 jar 文件以进行测试(因为这样我得到了System.out/err对调试有很大帮助的方法)。

我意识到我可以创建一个非管理员帐户并在那里启动应用程序,但我想知道是否有办法专门从管理员帐户启动一个 jar,这样它就没有管理员权限安慰。或者:有没有办法从管理员帐户打开一个没有管理员权限的控制台?

客户使用的是Windows XP,所以这是我可以使用的操作系统。(尽管如果您知道 Win7 等较新的 Windows 中的某些内容,如果您也能告诉我,我将不胜感激)。

编辑:澄清:我正在寻找这样的东西

java -jar -runWithoutAdminRights myFile.jar

或者

start /runWithoutAdminRights java -jar myFile.jar

或从管理员帐户打开非管理员控制台的方法。

4

3 回答 3

5

Runas 命令绝对看起来像要走的路。

我相信解决此问题的方法是首先检查您可用的信任级别选项:

runas /showtrustlevels

你应该得到如下内容:

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

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

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

于 2012-08-25T15:34:14.323 回答
1

您可以按照以下步骤操作:

  1. 以管理员身份登录
  2. 打开命令行
  3. 转到 System32 文件夹(cd C:/Windows/System32)
  4. 执行:runas /user:computer_domain_name\user1 cmd

系统将要求您提供 user1 的密码。之后以 user1 的权限打开一个新的命令行。

我已经尝试过了,它奏效了。

总之,您可以编写一个非常简单的批处理来自动执行步骤 2、3、4,这样当您单击它时,将以另一个用户的权限打开命令行。

我希望这有帮助。

于 2012-08-24T16:45:57.453 回答
0

编辑注册表是使用管理员自动运行 jar 文件的最佳方式。
如果您已经设置了 java 应用程序,这很容易。

转到注册表中的以下路径:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
创建具有以下规范的键(字符串值):
ValueName: java path+javaw.exe(example c:\program files\java\jre7\bin\javaw.exe)
ValueData: "WINXPSP3 RUNASADMIN"

现在所有 Jar 文件都运行到 Administrator

于 2012-08-11T06:37:52.753 回答