我想部署在类路径中包含一些文件的 jar
I want to deploy the jar that include some file in classpath
当我使用此命令 java -jar myapp.jar
执行 jar 时,我遇到了 FileNotFoundException
.
我的项目是一个基本的 Gradle java 应用程序。我将文件放在 ROOT/src/main/resources/testfile/test1.txt
中。我尝试 运行 IDE 中的代码使用类路径检查文件是否存在。
File file = ResourceUtils.getFile("classpath:testfile/test1.txt");
System.out.println(file.exists());
这是事实,但是当我执行作为命令 'gradle build' 结果的构建文件时,我遇到了 FileNotFoundException。当我取消归档 jar 时,我可以看到文件(\BOOT-INF\classes\testfile\test1.txt)
。
实际上,我想用示例文件部署 spring 引导 jar,我将放入初始化代码。请帮忙。谢谢。
您不能像 java.io.File 那样读取 jar 中的资源,正如它在 @Shailesh 共享的 link 中所说的那样
InputStream is = this.getClass().getClassLoader().getResourceAsStream("classpath:testfile/test1.txt"))
读取文件作为输入流,然后可以将其转换为字符串,然后在需要时将其转换为 class。
假设您实际上想读取文件而不是尝试使用 class 加载器寻址资源:
InputStream in = getClass().getResourceAsStream("/testfile/test1.txt");
BufferedReader reader = new BufferedReader( new InputStreamReader( in ) );
String line = null;
while( (line = reader.readLine() ) != null )
System.out.println("Line: " + line);
对我有用
当我使用此命令 java -jar myapp.jar
执行 jar 时,我遇到了 FileNotFoundException
.
我的项目是一个基本的 Gradle java 应用程序。我将文件放在 ROOT/src/main/resources/testfile/test1.txt
中。我尝试 运行 IDE 中的代码使用类路径检查文件是否存在。
File file = ResourceUtils.getFile("classpath:testfile/test1.txt");
System.out.println(file.exists());
这是事实,但是当我执行作为命令 'gradle build' 结果的构建文件时,我遇到了 FileNotFoundException。当我取消归档 jar 时,我可以看到文件(\BOOT-INF\classes\testfile\test1.txt)
。
实际上,我想用示例文件部署 spring 引导 jar,我将放入初始化代码。请帮忙。谢谢。
您不能像 java.io.File 那样读取 jar 中的资源,正如它在 @Shailesh 共享的 link 中所说的那样
InputStream is = this.getClass().getClassLoader().getResourceAsStream("classpath:testfile/test1.txt"))
读取文件作为输入流,然后可以将其转换为字符串,然后在需要时将其转换为 class。
假设您实际上想读取文件而不是尝试使用 class 加载器寻址资源:
InputStream in = getClass().getResourceAsStream("/testfile/test1.txt");
BufferedReader reader = new BufferedReader( new InputStreamReader( in ) );
String line = null;
while( (line = reader.readLine() ) != null )
System.out.println("Line: " + line);
对我有用