java 以管理员身份运行_如何以管理员身份运行jar程序
展开全部真正的方法是:先用C/C++编写一个简单的CMD命令调用程序,调用的命32313133353236313431303231363533e59b9ee7ad9431333363373734令就是“java -jar YourJar.jar”,如果想运行效果更好,可以把启动时的CMD窗口隐藏,然后以管理员权限运行这个编译链接好的exe文件即可。核心思想就是:OS无法直接给运行Jar包Java虚
展开全部
真正的方法是:
先用C/C++编写一个简单的CMD命令调用程序,调用的命32313133353236313431303231363533e59b9ee7ad9431333363373734令就是“java -jar YourJar.jar”,如果想运行效果更好,可以把启动时的CMD窗口隐藏,然后以管理员权限运行这个编译链接好的exe文件即可。核心思想就是:OS无法直接给运行Jar包Java虚拟机管理员权限,也无法通过直接右键Jar包以管理员权限运行因为Jar包不是PE文件,需要通过创建子进程间接地把管理员权限传递给Java虚拟机,从而运行的Jar包也就有了管理员权限。运行的Jar包有没有管理员权限看的是所运行的Java虚拟机有没有权限。示例代码://隐藏父窗口即CMD窗口看参考链接看原理
//只为了更好的运行效果
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
#include
int main() {
WinExec("java -jar MyExecutableJar.jar", SW_HIDE);
return 0;
}
然后把编译链接好的EXE文件放到“MyExecutableJar.jar”文件所在目录(“MyExecutableJar.jar”就是你的可执行Jar包,要获得管理员权限的),然后要以管理员权限运行Jar包时就右击编译链接好的EXE文件,选择使用管理员权限运行,之后运行的Jar包就继承了父进程的管理员权限。
测试结果:

以上是我写的需要使用管理员权限才能成功运行的Jar包,try11.exe是编译好链接好的exe文件,用来接受管理员权限并传递给java命令。我的Jar程序需要使用管理员权限开启WIFI和ICS,在运行前是这样子的:

以管理员身份运行try11.exe:

运行结果成功开启了WIFI和ICS:

Jar程序也运行起来了(只为了说明不是我手动开的WIFI和ICS,是真的以管理员权限运行的Jar包):

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)