2017-12-26 63 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과 같아야합니다)