Javaをjarにパッケージ化した後、resources配下のファイルリソースが取得できない問題について

最近、コードを書いているときに、resources ファイル以下のリソースを以下の 2 つの方法で取得する場合、エディタで実行すると取得できるのに、jar パッケージにパッケージ化すると取得できないことが分かりました。元のプロジェクトが jar パッケージにパッケージ化された後、これはフォルダーではなくファイルであるため、この方法ではリソース ファイルの下のリソースを取得できないことがわかりました。

//1.通过ClassPathResource 类获取
ClassPathResource resource = new ClassPathResource("pdfTemplates/logo.jpg");
//2.通过ResourceUtils获取
ResourceUtils.getFile("classpath:").getPath();

ではどうするかというと、以下の方法でパッケージ化されたリソース配下のリソースを取得できます。

		//读取resources的文件,打成jar包后不能直接读取,需要通过这种方式读取
		//这个是直接取的resources下的文件,所以直接写resources下的相对路径就行,不用加classpath:
        InputStream is = this.getClass().getClassLoader().getResourceAsStream("pdfTemplates/logo.jpg");

画像リソースを取得しました この取得メソッドはファイルストリームを取得するので、それを直接使いたい方法に変換できるので、byte[]に変換しました。
皆さんのお役に立てれば幸いです!

おすすめ

転載: blog.csdn.net/qq_45699784/article/details/129295569