windowsserver2008r2,项目中下载文件 到 D: ,D: 满了,找别人扩容,别人给了一个网络映射磁盘 Z: ,因为缺少了.net framwork,没有注册服务。现在我的java程序使用 jenkins 的 Execute Windows batch command 写了 java -jar XXX 等命令来执行 java程序。别人上传文件的时候,我的逻辑是 判断文件夹--->创建文件夹--->写入文件,报错 FileNotFoundException.
大致代码如下
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 服务的属性登录用户使用管理员权限的账户同样如此。
网上找了些零碎的消息,首先尝试了 修改 jenkins 服务的的属性,登录身份给了管理员权限的用户,重新运行之后还是存在问题。于是用 CMD 窗口 运行,创建文件夹和写入文件都成功了,程序恢复了正常。于是又尝试了 写一个bat脚本,CMD 执行之后正常。想着使用jenkins执行这个 bat,还是出现了 FileNotFoundException。
询问各位道友们是否有遇到类似的情况,遇到了是否有解决方案,还请留言,不胜感激!
把"\"换成"/"试试
看看Jenkins的目标服务器根目录在哪里