String newFile = StringConstant.LINUX_JOB_DIRSUFFIX + emptyFileStr;
Path newpath = Paths.get(newFile);//新的空的文件 就是打算写入到jar文件里的
File emptyFile = newpath.toFile();
emptyFile.createNewFile(); // 创建辅助空文件
String tmpJarFileName = "";
String globalVersion = httpForeignIntefaceConfigInitializer.getProperties().getProperty("Flink.JarName");
String originalJarPath = StringConstant.LINUX_JOB_FILESUFFIX + globalVersion ;
Path pathToAddFile = emptyFile.toPath();
Map env = new HashMap<>();
env.put("create", "true");
for (int i = 0; i < coreSize; i++) {//从0开始
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
tmpJarFileName = originalJarPath.substring(0, originalJarPath.length() - 4) + "-upgrade" + i + ".jar";
FileUtils.copyFile(new File(originalJarPath), new File(tmpJarFileName));// 创建中间文件 提交任务时 使用此文件
Path path = Paths.get(tmpJarFileName);
URI uri = URI.create("jar:" + path.toUri());
// Writer writer = null;
try (FileSystem fs = FileSystems.newFileSystem(uri, env)) {// 向辅助空文件中写入uuid 并将空文件写入中间文件 保证同一批次间使用的jar文件不同
Path nf = fs.getPath("emptyFile");//jar中要写入的文件名字
Files.copy(pathToAddFile, nf, StandardCopyOption.REPLACE_EXISTING);
Writer writer = Files.newBufferedWriter(nf, StandardCharsets.UTF_8, StandardOpenOption.CREATE);
writer.write(uuid);
writer.close();
// fs.close();
}
}