我试图在春季启动时从资源中读取demo.html文件。我已经尝试过此代码,但是它只能在本地运行,不能在服务器上运行:
val demoFile = new File(this.getClass.getClassLoader.getResource("foo/demo.html").getFile)
val demoFile = new File(ClassLoader.getSystemClassLoader.getResource("foo/demo.html").getFile)
val demoFile = new File(Thread.currentThread().getContextClassLoader.getResource("foo/demo.html").getFile)
在服务器上我得到FileNotFoundException
谢谢。
它在本地工作,因为该文件demo.html
存在于本地计算机上。您可以在build
文件夹中或IDE用于编译代码的任何文件中找到它。
在服务器上运行项目时,只有项目jar
文件,例如project.jar
。demo.html
服务器上没有文件。
demo.html
位于project.jar
文件内。project.jar
是一个简单的ZIP存档。因此,您需要一种从ZIP存档(您的project.jar
)中获取文件的方法。
最简单的方法是使用流。您可以读取文件,例如,以字符串形式。
如果您需要解析文件(可以是JSON,XML或HTML),则可以将流直接传递到解析库。
另外,不要忘记关闭流(当然,如果库未关闭流)。
https://www.baeldung.com/spring-classpath-file-access
另外,您也可以将文件从jar复制到文件TEMP
夹中,然后像平常一样访问它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句