如何将exe4j制作的Windows服务中一个进程设为用户态?
解决exe4j生成Windows服务双系统进程的问题
不用修改代码的快速方案
- 打开服务管理器:按下
Win+R输入services.msc回车。 - 找到你的exe4j生成的服务,右键选择「属性」。
- 切换到「登录」选项卡,选择「此账户」,输入一个普通用户的账号和密码(确保该用户有足够权限运行你的Java程序),点击确定。
- 重启服务后,两个进程都会切换为该用户的用户态进程。
保持wrapper为系统态、Java进程为用户态的方案(需重新打包)
如果你需要像VNC那样一个系统进程一个用户进程,可通过exe4j配置实现:
- 打开你的exe4j项目文件,进入「Service」配置界面。
- 找到「Process Settings」区域,勾选「Run Java process as a different user」选项。
- 填写目标用户的用户名、密码,若为域用户需补充域名。
- 重新生成服务安装程序,安装后启动服务,此时wrapper服务进程保持系统态,Java进程会以指定用户身份运行(用户态)。
是否需要修改Java代码?
不需要修改任何Java代码,仅通过配置调整即可实现需求。
内容的提问来源于stack exchange,提问作者ahad
相关产品推荐
相关产品推荐

