2017-12-26 35 views
0

Ich versuche derzeit, eine Datei (index.html) aus dem Ressourcenordner zu erhalten, aber es gibt immer Null zurück.Java-Projekt mit Maven kann keine Ressourcen finden

-Code die Datei zu laden:

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(); 
    } 

Die Dateien sind in der Ressource-Ordner Resource folder with files

jar file with folder

dies die .jar-Datei mit dem Ordner drin ist. siehe URL an der Spitze des Bildes)

Ich habe den Standard 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

Ich bin ziemlich sicher, dass der Anfang '/' nicht da sein sollte. – sfat

+0

@sfat Ich habe es bereits ohne das /, aber das gleiche Ergebnis versucht. – Konrad

+0

Ist $ {project.basedir}/target/classes/public/index.html vorhanden? –

Antwort

0

Ich nehme an, dass Ihre Beobachtung geschah, während die in Ihrer Frage angegeben Code zu testen.

Wenn ja, ist das Problem hier wahrscheinlich, dass die Ressourcen, die Sie laden möchten, physisch in src/main/resources sind.

Lösung: Versuchen Sie, die index.html zu src/test/resources zu verschieben. Vergessen Sie nicht, das Verzeichnis als Testressourcen-Wurzel zu markieren (wenn es richtig gemacht wird, sollten Ihre Moduleinstellungen wie this aussehen)

Verwandte Themen