把java工程打成jar无法获取文件路径进行执行与拷贝临时文件进行处理
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
public class Main {
public static void main(String[] args) {
// 获取资源文件的路径
String resourcePath = getResourcePath1("your-resource-file.txt");
// 执行你的代码
// ...
}
//方法1,此方法是指定文件路径进行拷贝
private static String getResourcePath1(String fileName) {
try {
// 指定临时文件的路径
Path tempFilePath = Path.get("path/to/temp/file.txt");
// 从JAR文件中获取资源文件的输入流
InputStream inputStream = Main.class.getResourceAsStream("/" + fileName);
// 将资源文件复制到指定的临时文件
Files.copy(inputStream, tempFilePath, StandardCopyOption.REPLACE_EXISTING);
// 返回临时文件的路径
return tempFilePath.toAbsolutePath().toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//方法2,此方法是指定文件名称和格式在临时路径生成文件进行拷贝
private static String getResourcePath2(String fileName) {
try {
// 创建临时文件,可以指定两个参数一个是(prefix前缀名称和suffix后缀格式)
Path tempFile = Files.createTempFile("test文件", ".txt");
// 从JAR文件中获取资源文件的输入流
InputStream inputStream = Main.class.getResourceAsStream("/" + fileName);
// 将资源文件复制到临时文件
Files.copy(inputStream, tempFile, StandardCopyOption.REPLACE_EXISTING);
// 返回临时文件的路径
return tempFile.toAbsolutePath().toString();
} catch (Exception e) {
e.printStackTrace();
}
}
}
网友评论