我想从使用 Jersey 制作并使用 Gradle 构建的 servlet 中读取文本文件。服务器是Tomcat 9。
我的文件结构:
project
+ src
+ package
+ App.java
+ res
+ file.txt
我的build.gradle
:
apply plugin: "java"
apply plugin: "war"
project.webAppDirName = "WebContent"
sourceSets {
main {
java {
srcDirs = ["src"]
}
resources {
srcDirs = ["res"]
}
}
}
repositories {
mavenCentral()
}
dependencies {
compile "org.glassfish.jersey.containers:jersey-container-servlet:2.25.1"
}
war {
archiveName "api.war"
}
Tomcat解压WAR后,file.txt
与源码包在同一目录下:
WEB-INF
+ classes
+ package
+ App.class
+ file.txt
我尝试使用类加载器加载文件,但类路径似乎是 Tomcat 的 bin
目录。我也不想硬编码路径。
在此处加载文件的最佳方式是什么?
最佳答案
InputStream in = package.App.class.getClassloader().getResourceAsStream("file.txt")
关于java - 从 servlet 读取资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46327954/