我有一个Maven项目,该项目的目录src/main/resources
下有资源文件。我注意到在Eclipse中,当我运行项目时,源文件被复制到target/classes
,而没有资源目录,只是资源目录下的文件。
但是在我使用Right clieck on the project -> Jar -> Runnable Jar
将项目导出到可运行的jar之后,这些资源文件位于资源目录下:
如您所见,在两种情况下,资源文件位于不同的位置。
及以下代码在Eclipse中运行良好,但在可运行的jar中不起作用
getClassLoader().getResourceAsStream("database.properties")
如何解决这个问题?我希望上面的代码在两种情况下都能工作。
答案 0 :(得分:0)
不幸的是,这是两个不同的构建过程,大多数项目将使用一个构建系统。付出很多努力却没有带来很多好处。您也可以从Eclipse启动mvn package
。我会推荐Maven,因为它是一个标准。如果您必须这样做,这里有一些想法
/resources
是否存在,并为所有路径添加前缀答案 1 :(得分:0)
答案很简单-在类似情况下,不要相信Eclipse或任何IDE。仅考虑将在单独环境中运行的单独构建。使用嵌入在IDE应用程序或Web服务器中的测试也是如此-这是大量潜在问题的根源