You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat以Windows服务运行时调用JAR写入FTP遇权限拒绝的解决方法

解决Tomcat服务运行JAR无法写入远程共享目录的权限问题

兄弟,这问题我碰到过好几次!Windows服务模式下的Tomcat默认用的账户权限很低,导致没法访问远程共享目录,给你几个靠谱的解决步骤:

1. 修改Tomcat服务的运行账户

这是最核心的解决办法,因为默认的Local System账户基本没权限访问网络共享:

  • 按Win + R输入services.msc打开服务管理器
  • 找到你的Tomcat服务(比如叫「Apache Tomcat 9.0」),右键选「属性」
  • 切到「登录」标签页,选「此账户」,然后输入一个拥有远程共享目录写入权限的Windows账户(比如你平时登录电脑用的账户,或者专门建的服务账户)
  • 输入账户密码后点「应用」「确定」,重启Tomcat服务
  • 划重点:这个账户必须在远程服务器的共享目录权限里被明确授予「写入」权限,不然还是会报错

2. 检查远程共享目录的权限配置

别光改Tomcat的账户,远程那边的权限也要配好:

  • 登录到11.4.0.122服务器,找到resultfolder文件夹,右键「属性」→「共享」→「高级共享」
  • 确保文件夹已经开启共享,然后在「权限」里添加刚才Tomcat用的账户,给它「完全控制」或「写入」权限
  • 再切到「安全」标签页,同样添加该账户,授予「写入」「修改」等必要权限(这里的权限是NTFS权限,和共享权限都要配置)

3. 确认程序里的路径写法

你示例里的路径是\11.4.0.122\resultfolder,这不对!正确的SMB共享路径得是双反斜杠开头:\\11.4.0.122\resultfolder。虽然CMD里可能能识别单斜杠,但Tomcat的Java环境下大概率会解析错误,检查下program1.jar里的路径是不是写错了。

4. 提前测试权限(避坑推荐)

用刚才给Tomcat设置的那个账户登录Windows,打开CMD运行program1.jar,看能不能正常写入远程目录:

  • 如果能,说明权限没问题,重启Tomcat就好
  • 如果还是不行,那就是远程目录的权限没配置到位,回去再检查步骤2

要是你说的FTP是真正的FTP服务(不是SMB共享),那可能还要检查FTP客户端的被动模式配置,但你CMD运行正常,所以大概率就是服务账户的问题,先按上面的步骤来!

内容的提问来源于stack exchange,提问作者Kamil Evo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 07:27:32