从/ src / main / resources读取文件会给出FileNotFound异常

时间:2018-07-26 11:45:14

标签: java java-web-start embedded-resource jnlp

我的项目具有以下结构:

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 /,并且相同的代码给出错误FileNotFound异常

如何读取/ src / main / resources / data下的文件。我在代码中使用Embedded Jetty服务器,并且将其编译并构建为一个Jar,然后部署在Tomcat中。我正在使用JNLP运行jar。

1 个答案:

答案 0 :(得分:1)

您可以使用resourceAsStream方法从jar中读取文件

InputStream stream = Encrypter.class.getResourceAsStream(filePath)

现在,您可以继续此流