从 /src/main/resources 读取文件给出异常 FileNotFound
Reading file from /src/main/resources gives exception FileNotFound
我的项目结构如下:
KnitProject - Project Name
/src/main/java/com/knit/controller/File1.java
/src/main/resources/data/read.txt
在 File1.java 中,我正在尝试获取 /src/main/resources 文件夹中 read.txt 的路径。
Main.java
=========
Server server = new Server(8585);
.....
.....
server.start();
server.join();
File1.java
==========
URL url = Encrypter.class.getResource("/data/read.txt");
System.out.println(url.getFile()); //This prints "C:/Users/KnitProject/target/classes/data/read.txt" which is working locally from my system
当我在 Tomcat i.e http://<ip>:8080, /src/main/resources path is not accessible.
部署这个 jar
System.out.println(url.getFile()); //This prints "http://<ip>:8080/test/target/KnitProject.jar!/data/read.txt.
尝试使用
读取文件时
FileInputStream fileInputStream = new FileInputStream(new File(url.getFile())) ---> gives me error FileNotFound Exception when deployed in Tomcat
我已经创建了 KnitProject 应用程序的 jar 并将其部署在 Tomcat 中。任何人都可以帮助我我做错了什么。 /src/main/resources/ 可从我的本地计算机访问,相同的代码给出错误 FileNotFoundException.
如何读取 /src/main/resources/data 下的文件。我在我的代码中使用嵌入式 Jetty 服务器,同样被编译并构建为一个 Jar,然后部署在 Tomcat 中。我是 运行 使用 JNLP 的 jar。
您可以使用resourceAsStream
方法从jar中读取文件
InputStream stream = Encrypter.class.getResourceAsStream(filePath)
现在您可以使用此流继续
我的项目结构如下:
KnitProject - Project Name
/src/main/java/com/knit/controller/File1.java
/src/main/resources/data/read.txt
在 File1.java 中,我正在尝试获取 /src/main/resources 文件夹中 read.txt 的路径。
Main.java
=========
Server server = new Server(8585);
.....
.....
server.start();
server.join();
File1.java
==========
URL url = Encrypter.class.getResource("/data/read.txt");
System.out.println(url.getFile()); //This prints "C:/Users/KnitProject/target/classes/data/read.txt" which is working locally from my system
当我在 Tomcat i.e http://<ip>:8080, /src/main/resources path is not accessible.
System.out.println(url.getFile()); //This prints "http://<ip>:8080/test/target/KnitProject.jar!/data/read.txt.
尝试使用
读取文件时FileInputStream fileInputStream = new FileInputStream(new File(url.getFile())) ---> gives me error FileNotFound Exception when deployed in Tomcat
我已经创建了 KnitProject 应用程序的 jar 并将其部署在 Tomcat 中。任何人都可以帮助我我做错了什么。 /src/main/resources/ 可从我的本地计算机访问,相同的代码给出错误 FileNotFoundException.
如何读取 /src/main/resources/data 下的文件。我在我的代码中使用嵌入式 Jetty 服务器,同样被编译并构建为一个 Jar,然后部署在 Tomcat 中。我是 运行 使用 JNLP 的 jar。
您可以使用resourceAsStream
方法从jar中读取文件
InputStream stream = Encrypter.class.getResourceAsStream(filePath)
现在您可以使用此流继续