【问题标题】:Run jar file without admin rights在没有管理员权限的情况下运行 jar 文件
【发布时间】:2012-08-08 15:52:09
【问题描述】:

我有一个可运行的 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

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

【问题讨论】:

  • 我会说这不太可能。
  • @ShaneHsu 看起来像... ;)

标签: windows jar console admin


【解决方案1】:

Runas command 看起来确实不错。

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

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"

【讨论】:

  • 知道这是可能的。我将在星期一对此进行测试。 :)
  • 完美运行。虽然在某些计算机上我只是获得没有 ID 的“基本用户”。有没有办法在这些系统上实现这一点?
  • 嗯,我怎么能把赏金也给你呢? ://
  • 有趣的是获得没有任何 id 的“基本用户”。据我所知,0x20000 似乎是一个标准。也许使用 /trustlevel:0x20000 运行会起作用,即使出于某种原因,它没有在给定系统上使用 /showtrustlevels 定义。至于我不知道的赏金,我很高兴我能提供帮助 =)
  • 我可以确认 0x20000 即使没有显示也可以工作。至少在我正在使用的机器上。再次感谢。 ;)
【解决方案2】:

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

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

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

我试过了,效果很好。

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

我希望这会有所帮助。

【讨论】:

  • 非常感谢,我会在星期一测试一下。看起来很有希望。
  • 效果很好,但我不想创建另一个帐户。无论哪种方式,您都给了我一个有用的解决方案,可以正确回答问题并获得奖励。 ;)
【解决方案3】:

编辑注册表是使用管理员自动运行 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 文件都运行到 Adminstartor

【讨论】:

  • 我实际上喜欢从管理员帐户以 非管理员 身份运行它,而不是相反。此外,我只想以这种方式运行一个 jar,而不是所有时间。所以更改注册表并不是一个真正的选择。
猜你喜欢
  • 2014-03-19
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 2022-09-28
  • 2023-04-06
相关资源
最近更新 更多