2017-12-26 23 views
0

現在、リソースフォルダからファイル(index.html)を取得しようとしていますが、常にnullが返されます。mavenのJavaプロジェクトでリソースが見つかりません

コードは、ファイルをロードします

ClassLoader loader = this.getClass().getClassLoader(); 

    File file = null; 
    try { 
     System.out.println(loader.getResource("/public/index.html") + "is the resource"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

ファイルはリソースフォルダ Resource folder with files

jar file with folder

にあり、これはその中のフォルダと.jarファイルです。画像の上部)

でのURLを参照してください。私は、デフォルトのpom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>it.bachmann</groupId> 
    <artifactId>servertracker</artifactId> 
    <version>1.0</version> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>com.parse.bolts</groupId> 
      <artifactId>bolts-tasks</artifactId> 
      <version>1.4.0</version> 
     </dependency> 
     <dependency> 
      <groupId>io.javalin</groupId> 
      <artifactId>javalin</artifactId> 
      <version>1.2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.json</groupId> 
      <artifactId>json</artifactId> 
      <version>20160810</version> 
     </dependency> 
     <dependency> 
      <groupId>com.auth0</groupId> 
      <artifactId>java-jwt</artifactId> 
      <version>3.3.0</version> 
     </dependency> 
    </dependencies> 
</project> 
+0

私は '/'の先頭にはいけないと確信しています。 – sfat

+0

@sfat私はすでに/、しかし同じ結果なしでそれを試してみました。 – Konrad

+0

'$ {project.basedir}/target/classes/public/index.html'は存在しますか? –

答えて

0

私はあなたの質問に記載されたコードをテストしながら、あなたの観測が起こったと推定しています。

もしそうであれば、ロードしようとしているリソースが物理的にsrc/main/resourcesになっている可能性があります。

解決方法:index.htmlsrc/test/resourcesに移動してみてください。ディレクトリをテストリソースのルートとしてマークすることを忘れないでください(正しく設定されていると、モジュールの設定はthisのようになります)

関連する問題