2017-03-01 2 views
-1

私はspring-bootを使用しています。ディレクトリからリソースをロードする必要があります。次のコードはファイルシステム環境でうまく動作します。 しかし、Springはファイルシステムのパスにアクセスしようとしますが、JARのパスにアクセスすることはできないため、Jarを操作するときにFileNotFoundExceptionが発生します。 test.txtのは、あなたのJARファイルのルートにあった場合jarからFileSystemResourcesをロードする方法

InputStream is = this.getClass().getClassLoader().getResourceAsStream(fileFromJarFile); 

:あなたはこのようなものを使用することができ、それは瓶で動作させるために行われることには何が必要だけでなく

+0

はクラスパスのjarですか? –

+0

@rahul singh:はい。そこには –

答えて

0

@EnableAutoConfiguration 
@Configuration 
public class Application implements CommandLineRunner { 

    @Autowired 
    private MongoDBMigrator migrator; 

    @Autowired 
    private ApplicationContext ctx; 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 

    @Override 
    public void run(String... args) throws Exception { 
      migrator.runScripts(ctx.getResources("classpath:db/*.js")); 
    } 
} 

、あなたが使用したい:

InputStream is = this.getClass().getClassLoader().getResourceAsStream("test.txt"); 

をクラスはリソースと同じJARファイル内にあるとみなされ、私は信じてい

+0

InputStreamが単一のリソースに使用されます。私は入力ストリームではなくファイルとして複数のリソースを読みたい。これ以上の操作のために私はファイルのパス、ファイル名などが必要です –

+0

@suvarnaChavanはいそれは単一リソースの使用のために使用されますリソース名が同じ場合InputStreamのリストを使用することができます –

関連する問題