Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-使用管理员权限执行exe_Java_Admin Rights - Fatal编程技术网

Java-使用管理员权限执行exe

Java-使用管理员权限执行exe,java,admin-rights,Java,Admin Rights,我目前正在开发一个研究工具,它将几个便携式系统管理工具(主要是系统内部工具)组合在一起。我有一个简单的框架和一个按钮 我想做什么? -除了我的java文件外,我还有一个exe文件(例如,让我们使用config.exe),它需要提升权限才能运行 用户单击按钮后,我如何执行此操作执行此文件 编辑:我刚刚找到了另一种方法。我从我的jar文件中创建了一个exe文件,并转到“兼容性”选项卡并选中“始终以管理员身份运行”谢谢您的帮助。鉴于您正在尝试运行一个exe文件,我假设这是Windows java中执行

我目前正在开发一个研究工具,它将几个便携式系统管理工具(主要是系统内部工具)组合在一起。我有一个简单的框架和一个按钮

我想做什么? -除了我的java文件外,我还有一个exe文件(例如,让我们使用config.exe),它需要提升权限才能运行

用户单击按钮后,我如何执行此操作执行此文件


编辑:我刚刚找到了另一种方法。我从我的jar文件中创建了一个exe文件,并转到“兼容性”选项卡并选中“始终以管理员身份运行”谢谢您的帮助。

鉴于您正在尝试运行一个
exe
文件,我假设这是Windows

java中执行外部命令的标准方式是
.exec
命令:

Runtime.getRuntime().exec("path\to\config.exe");

现在,要使
config.exe
以管理员身份运行,您需要做的是将其设置为从Windows以管理员身份运行。在资源管理器中右键单击该文件,然后选择
属性
。选择
兼容性
选项卡并选中底部附近的
以管理员身份运行此程序
。现在,每当程序运行时,它都会在运行前请求提升权限。

首先找到exe文件所在的目录。然后创建一个名为

“您的文件名”.Exe.manifest

只需将以下内容放入文件并保存即可

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.1.1.1"
   processorArchitecture="X86"
   name="MyApp.exe"
   type="win32"/>
  <description>elevate execution level</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
  <security>
   <requestedPrivileges>
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
   </requestedPrivileges>
  </security>
  </trustInfo>
 </assembly>

我想这会对您有所帮助。

您好,谢谢您提供这些有用的信息。我正在使用Launch4j将清单添加到exe中,但在编译exe后,我始终会收到错误“应用程序无法启动,因为其并行配置不正确”。我如何克服这一问题?ThxOK,在将清单嵌入exe之前。你运行了吗。结果如何?是的,我可以运行它,但我不能执行exe。关于特权我有一个奇怪的错误。我的程序有两个主要功能,更改网络接口IP地址和打开其他程序。但现在,如果我右键单击exe并“以管理员身份执行”,我可以更改网络接口IP,但无法运行exe。如果我只是执行jar文件,我可以运行EXE,但不能更改ip地址。有什么提示吗?你说我可以更改网络接口ip,但不能为EXE运行EXESA是什么意思?我指的是在名为“应用程序”的文件夹中的其他应用程序这些是我的java程序引用的可移植应用程序,它可以执行它们(其中一些需要管理权限)它们主要是系统内部工具。至于更改网络接口,如果您有一个启用DHCP的NIC,并且希望通过我的程序更改它,那么您也可以这样做。这是通过引用cmd命令实现的。
Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2",).start();
InputStream is = process.getInputStream();//Get an inputstream from the process which is being executed
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);//Prints all the outputs.Which is coming from the executed Process
}