问题遇到的现象和发生背景
windowsserver2008r2,项目中下载文件 到 D: ,D: 满了,找别人扩容,别人给了一个网络映射磁盘 Z: ,因为缺少了.net framwork,没有注册服务。现在我的java程序使用 jenkins 的 Execute Windows batch command 写了 java -jar XXX 等命令来执行 java程序。别人上传文件的时候,我的逻辑是 判断文件夹--->创建文件夹--->写入文件,报错 FileNotFoundException.
遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
大致代码如下
String fileName="001.txt";
// Z: 是网络映射磁盘
String path="Z:\upload";
String base64Data="base64字符串";
File file = new File(path);
if (!file.exists()) {
file.mkdirs();
}
FileWriter fwriter = new FileWriter(path + "\\" + fileName);
fwriter.write(base64Data);
fwriter.flush();
fwriter.close;
运行结果及详细报错内容
在 本地运行 和在线上使用CMD 运行都是正常的,但是用jenkins使用 CMD 上一样的命令,都会在 new FileWriter(path + "\" + fileName) 报错 Z:\upload\001.txt FileNotFoundException,就算 jenkins 服务的属性登录用户使用管理员权限的账户同样如此。
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
网上找了些零碎的消息,首先尝试了 修改 jenkins 服务的的属性,登录身份给了管理员权限的用户,重新运行之后还是存在问题。于是用 CMD 窗口 运行,创建文件夹和写入文件都成功了,程序恢复了正常。于是又尝试了 写一个bat脚本,CMD 执行之后正常。想着使用jenkins执行这个 bat,还是出现了 FileNotFoundException。
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
询问各位道友们是否有遇到类似的情况,遇到了是否有解决方案,还请留言,不胜感激!