、JARパッケージを使用して起動するspringbootの方法は、リソースディレクトリの設定ファイル(ランタイム)にFileNotFoundExceptionを見つけることができません

springbootプロジェクトはCKEditorバージョン+ ckfinderを使用します。java -jarジャーパケット開始し、リッチテキストボックスを使用して、JARパッケージにパッケージ化。

写真をアップロードする際ckfinderのカスタムプロファイルは、例外があったので、

DefaultResourceLoaderローダー= 新しいDefaultResourceLoader();
            ストリングabsolutePath = loader.getResource(この .xmlFilePath).getFile()getAbsolutePath()。

例外をスロー:

java.io.FileNotFoundException:クラスパスリソース[ckfinder-config.xmlには]絶対に解決できないファイルには存在しないので、パスファイル jarファイル:システムファイル:/ E:/開発/ VCS / GIT / dmahzForum / dmahzForum /目標/ dmahz-forum- 0.01 -SNAPSHOT.jar!/ BOOT-INF /クラス!/ ckfinder- config.xmlに
        org.springframework.util.ResourceUtils.getFileで(ResourceUtils.java:217 
        org.springframework.core.io.AbstractFileResolvingResource.getFileで(AbstractFileResolvingResource.java:131 
        cn.dmahz.config.CKFinderConfiguration.checkIfReloadConfigで(CKFinderConfiguration.java:197 
        com.ckfinder.connector.configuration.ConfigurationFactory.getConfigurationで(ConfigurationFactory.java:59 
        でcom.ckfinder.connector.configuration.ConfigurationPathBuilder.getBaseDir(ConfigurationPathBuilder.java:55 
        でcom.ckfinder.connector.configuration.ConfigurationFactory.getBaseFolder(ConfigurationFactory.java:189 
        com.ckfinder.connector.configuration.ConfigurationFactory.updateResourceTypesPaths(:ConfigurationFactory.javaにおける151

いくつかの方法をテストし、結果がのgetInputStream(でファイルの内容を取得するための唯一の方法である)流れ、それ以外の場合は、上記の例外がスローされます;;;

以下のように変更した後、次のとおりです。

ClassPathResource classPathResourceは= 新しい ClassPathResource( "ckfinder-config.xmlが" );
            ストリングパス1 = classPathResource.getPath()。
            InputStream InputStreamは = classPathResource.getInputStream()。
            System.err.println( "パス1:" + パス1)。
            System.err.println( "InputStreamの:" + InputStreamの+ "サイズ:" + inputStream.available());

あなたは問題なく実行できることを証明します

おすすめ

転載: www.cnblogs.com/XingXiaoMeng/p/12366316.html