包 Java 1.7+ 只有 类 带有 JAR 1.6

Package Java 1.7+ Only Classes with JAR 1.6

我有一个问题,我想将文件从一个目录复制到另一个目录。

Path source = Paths.get(files[i].getPath());
Path target = Paths.get(dir.getName() + "/" + files[i].getName());
try {
    Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);
    files[i] = target.toFile();
} catch (IOException e) {
    throw new IOException("\t\tUnable to move " + files[i].getName(), e);
}

这段代码 可以工作 ,但是我 运行 正在使用 JRE 1.8,而我想要 运行 的系统是 运行宁 JRE 1.6。 Path 和 Files 仅在 JRE 1.7 之后可用。

有没有一种方法可以使用 eclipse 或 java 编译器将这些 类 与我的 jar 文件.

打包在一起

通常,您可以使用 -target 选项生成 class 文件,这些文件以指定版本的 VM 为目标。例如:javac -target 1.6。查看 here 以获得更多选项。 但是当源代码中有 classes 对您指定的目标不可用时,这不起作用。我相信你使用 java 文件 IO api 并且你可以使用的最小目标是 1.7.

如果您对命令行感到满意,可以尝试在 Java 代码中使用 运行 OS 命令。在我看来,这比尝试重写文件和路径 java classes 容易得多。至少那是我所做的。

如果您不知道如何在 Java 代码中执行 OS 命令,您可以找到很好的示例 here