Các pom.xml của dự án maven của tôi trông như sau:.getClass() getResourceAsStream() trong dự án maven
<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>groupId</groupId>
<artifactId>artifactId</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>
Trong thư mục src/main/nguồn Tôi có một tập tin gọi là thử nghiệm. Trong chính thư mục src// java Tôi có một lớp có chứa các dòng sau:
System.out.println(this.getClass().getResourceAsStream("test"));
Khi dòng mã được chạy trong Eclipse, tôi nhận được như đầu ra
[email protected]
Khi tôi xuất khẩu dự án như .jar và chạy nó tôi nhận được như là đầu ra
null
Tôi có cấu hình bất cứ điều gì sai?
Lớp học là bài kiểm tra đơn vị hoặc một lớp học thực sự hiệu quả? Tôi giả định một lớp học hiệu quả. Hơn bạn phải thay đổi getResourcesAsStream ("test") thành getResourcesAsStream ("/ test"); – khmarbaise
@khmarbaise bạn đúng ... nhưng tại sao nó lại hoạt động với nhật thực ??? – ben75
Tài nguyên thử nghiệm này có nằm trong thư mục * src/main/resources * hoặc trong thư mục * src/test/resources * có hoặc không có tên gói không? Hơn nữa, bạn không cần phải cấu hình thư mục * src/main/java * hoặc thư mục * src/main/resources *, vì chúng là mặc định trong maven. – khmarbaise