在将java项目导出为JAR并尝试在ECLIPSE中的动态Web项目中使用它之后,找不到资源文件

在将java项目导出为JAR并尝试在ECLIPSE中的动态Web项目中使用它之后,找不到资源文件,java,eclipse,jar,filenotfoundexception,file-not-found,Java,Eclipse,Jar,Filenotfoundexception,File Not Found,我有一个正在运行的java程序,它正在用derby做一些数据库工作。 连接的数据库url jdbc:derby://localhost:1527/MaorB_CouponDB 不是硬编码的,而是写入一个.txt文件,位于“文件”文件夹中,而不是src。 像这样运行项目和测试系统是完美的 该项目的第二阶段是将所有内容移动到web,该java程序充当服务器上执行DB操作的大脑。我将整个项目导出为一个.JAR,我可以看到它还包括“files”文件夹(带有url txt以及其他文件) 但是,尝试在新的动

我有一个正在运行的java程序,它正在用derby做一些数据库工作。 连接的数据库url

jdbc:derby://localhost:1527/MaorB_CouponDB

不是硬编码的,而是写入一个.txt文件,位于“文件”文件夹中,而不是src。 像这样运行项目和测试系统是完美的

该项目的第二阶段是将所有内容移动到web,该java程序充当服务器上执行DB操作的大脑。我将整个项目导出为一个.JAR,我可以看到它还包括“files”文件夹(带有url txt以及其他文件)

但是,尝试在新的动态Web项目上运行一个简单的测试来检查它(在将Project.jar、derby_client.jar作为外部libs导入之后)会导致一个异常:

ERROR: something went wrong. cannot initialize a ConnectionPool instance. cause:
URL file not found, on connection pool CTOR
x.exceptions.ConnectionPoolException: URL file not found, on connection pool CTOR
    at b.connections.ConnectionPool.<init>(ConnectionPool.java:34)
    at b.connections.ConnectionPool.getInstance(ConnectionPool.java:73)
    at d.DAO.CompanyDbDAO.<init>(CompanyDbDAO.java:26)
    at f.system.CouponSystem.<init>(CouponSystem.java:36)
    at f.system.CouponSystem.getInstance(CouponSystem.java:58)
    at a.test.main(test.java:11)
Caused by: java.io.FileNotFoundException: files\urlFile (The system cannot find the path specified)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.util.Scanner.<init>(Unknown Source)
    at b.connections.ConnectionPool.<init>(ConnectionPool.java:31)
    ... 5 more
但是在尝试了路径字符串的许多变体之后,我只得到null

有什么建议吗? 谢谢


编辑: 以下是我尝试过的一切,我认为这些都是相关的:



EDIT2:

确保资源文件在结果jar中。这通常是导致此类错误的原因。如果发布生成文件,将更容易提供帮助。

的可能副本。只需a)在Eclipse项目中的“src”下创建一个“files”目录,b)将urlfile.txt复制到其中,c)重建您的.jar
getResourceAsStream()
现在应该可以按预期工作。这将导致null:InputStream urlFile=this.getClass().getResourceAsStream(“src/newfiles/urlFile.txt”);System.out.println(urlFile);不不不不要在代码中引用“src”!Eclipse自动将“src”下的非Java资源(如“src/files/*”)中的内容复制到您的jar中。这样做:a)在“src”下创建“文件”。b) 将“url.txt”复制到“src/files”中。c) 修改您的代码:
…getResourceAsStream(“/files/url.txt”)
,d)重建您的.jar并进行测试。首先,非常感谢您的帮助。我有点迷失在这里,在我能解决这个问题之前,我无法推进这个项目。仍然是“java”唯一的原始项目——当我尝试您建议的内容时,结果是“null”。我显然无法从中获取url字符串。我遗漏了什么吗?**我用另一个简单的截图编辑了原始帖子。在哪里可以找到我的构建文件?
this.getClass().getResourceAsStream("/files/urlFile.txt");