发布网友 发布时间:2022-04-21 01:25
共4个回答
热心网友 时间:2023-10-11 19:29
真正的方法是:
先用C/C++编写一个简单的CMD命令调用程序,调用的命令就是“java -jar YourJar.jar”,如果想运行效果更好,可以把启动时的CMD窗口隐藏,然后以管理员权限运行这个编译链接好的exe文件即可。核心思想就是:OS无法直接给运行Jar包Java虚拟机管理员权限,也无法通过直接右键Jar包以管理员权限运行因为Jar包不是PE文件,需要通过创建子进程间接地把管理员权限传递给Java虚拟机,从而运行的Jar包也就有了管理员权限。运行的Jar包有没有管理员权限看的是所运行的Java虚拟机有没有权限。示例代码:
//隐藏父窗口即CMD窗口看参考链接看原理参考链接:运行隐藏CMD窗口.http://blog.sina.com.cn/s/blog_af95b18b01019vgq.html
然后把编译链接好的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包):
热心网友 时间:2023-10-11 19:29
你好,Vista以上版本程序增加了 以管理员身份运行 这个功能。原因是:为了系统安全,很多程序不让以administrator账户运行的,但这个又导致很多程序因为无法获得相关权限而无法运行,于是就出现了所谓的“兼容性问题”,一般右键以管理员身份运行后,本来不能运行的程序就能运行了。热心网友 时间:2023-10-11 19:30
win7的话,右击计算机-->管理-->本地用户和组|用户|,在右面,右击 Administrator--->属性--->账户已禁用前有个复选框【不知是否是你想要的,希望有用】热心网友 时间:2023-10-11 19:30
先配置好Java系统环境变量PATH,然后运行“java -jar 类名”