我试图将包含26个文件(A-Z)的文件夹复制到另一个目录。到目前为止一切顺利,如果我使用IDE启动程序,一切正常。但是,如果我运行导出的jar它不起作用。我已经查看了jar,我想要复制的文件夹就在那里。
private void copyCharacterFiles() {
for (String s : Utils.ALPHABET) {
try {
File source = new File("resources/characters/" + s.toUpperCase() + ".yml");
File dest = new File(APPLICATION_PATH + PATHSEPARATOR + "characters" + PATHSEPARATOR + s.toUpperCase() + ".yml");
FileChannel sourceChannel = null;
FileChannel destChannel = null;
try {
sourceChannel = new FileInputStream(source).getChannel();
destChannel = new FileOutputStream(dest).getChannel();
destChannel.transferFrom(sourceChannel, 0, sourceChannel.size());
} finally {
sourceChannel.close();
destChannel.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
感谢您的帮助^^
答案 0 :(得分:0)
我相信你能够在你的IDE中运行它,因为你的资源有目录结构,而你在运行JAR时没有这个保证。如果您将这些资源作为类路径的一部分,那么您应该能够按照post中的答案访问资源。否则,您访问该文件的方式是相对路径,这肯定会导致一些问题。
希望有所帮助!