JNA:com.sun.jna.platform.win32.Win32Exception-访问被拒绝 [英] JNA:com.sun.jna.platform.win32.Win32Exception- access denied
本文介绍了JNA:com.sun.jna.platform.win32.Win32Exception-访问被拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用以下代码从Java程序控制Windows服务
I use following code to control a windows service from java program
public class PostgresService2
{
public static void main(String[] args)
{
try
{
W32ServiceManager serviceManager = new W32ServiceManager();
serviceManager.open(Winsvc.SERVICE_STOP);
W32Service service = serviceManager.openService("DBService",
Winsvc.SERVICE_ACCEPT_STOP);
service.stopService();
service.close();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
这会在Windows7(64位)计算机上产生错误
This gives error on windows7 (64bit) machine
com.sun.jna.platform.win32.Win32Exception: Access is denied.
at com.sun.jna.platform.win32.W32Service.queryStatus(W32Service.java
at com.sun.jna.platform.win32.W32Service.waitForNonPendingState(W32S
at com.sun.jna.platform.win32.W32Service.stopService(W32Service.java
at chs.capitalmigrate.ui.PostgresService2.main(PostgresService2.java
运行命令所在的shell具有管理特权.我如何提供完全访问权限?
The shell from where the command is run has administrative privileges. How I can provide full access?
推荐答案
我正在使用SC_MANAGER_ALL_ACCESS,并且可以正常工作.不确定是否有帮助.
I am using SC_MANAGER_ALL_ACCESS and that works. Not sure if that helps.
W32ServiceManager serviceManager = new W32ServiceManager();
serviceManager.open(Winsvc.SC_MANAGER_ALL_ACCESS);
W32Service service = serviceManager.openService("servicename", Winsvc.SC_MANAGER_ALL_ACCESS);
这篇关于JNA:com.sun.jna.platform.win32.Win32Exception-访问被拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文