Java Maven-从JAR文件加载资源?

Java Maven-从JAR文件加载资源?,java,maven,jar,fatjar,Java,Maven,Jar,Fatjar,在使用Maven将资源绑定到JAR文件中时,我感觉自己遗漏了一些关键的东西。我的目录结构是标准的Maven结构 当使用IDE时,我将资源文件引用为\main\resources\public\images\path,它工作正常,但当Maven css js和图像不工作时,站点看起来很糟糕。如果我在jar中查找,我会找到所有的css、js和图像。当我试图在浏览器中打开css链接时,我得到一个404错误。这是我的pom.xml。在eclipse中,它工作得很好。 我使用Spark.staticFil

在使用Maven将资源绑定到JAR文件中时,我感觉自己遗漏了一些关键的东西。我的目录结构是标准的Maven结构

当使用IDE时,我将资源文件引用为
\main\resources\public\images\path
,它工作正常,但当Maven css js和图像不工作时,站点看起来很糟糕。如果我在jar中查找,我会找到所有的css、js和图像。当我试图在浏览器中打开css链接时,我得到一个404错误。这是我的pom.xml。在eclipse中,它工作得很好。
我使用
Spark.staticFiles.location(“public”)加载资源。

我不能对Spark发表评论,但是当您创建工件(jar,fat或not)时,它仅仅不包含
main/resources
文件夹(使用winrar之类的工具打开jar并检查您自己)

另一个困难是,如果您使用与
文件
抽象相关的东西,那么在工件内部可能是错误的<代码>文件
描述文件系统上的一个位置,您正试图从工件中读取一些内容

通常,您可以在读取资源的代码中使用:

getClass().getResourceAsStream("/public/impages/path/sample.js") 

感谢您的回复。在我的代码中,我使用
Spark.staticFiles.location(“public”)并且它工作得很好。在jar文件中,当我用winrar打开它时,文件夹public与所有css js和图像一起存在,但不起作用。如果我打开一个404未找到的资源的路径,请给我们一些代码,这样我们可以更好地帮助您。这是令人困惑的,没有太多的意义,所以请尝试通过给我们提供更多的信息来帮助我们。将pom文件粘贴到问题中,在三个回勾(```之间)。向我们展示一些您正在使用的代码,您的html.Jar文件是针对java的,放在类路径上并从那里引用——您不应该在代码中引用
main/resources
。Maven将把resources目录的内容打包到jar的根目录中。HTML、CSS和Javascript通常不打包在一个jar中——它们通常分开保存并部署到http服务器上的文件系统中。虽然可以将它们打包到一个jar中,但这并不是进行web内容开发的好方法。谢谢您的帮助。此图显示在winrar上打开的jar文件