gpt4 book ai didi

java - 部署期间与开发期间从 JAR 文件加载

转载 作者:行者123 更新时间:2023-12-02 09:41:24 24 4
gpt4 key购买 nike

当我将一些数据加载到我的java程序中时,我通常使用FileInputStream。但是我将程序部署为 jar 文件和 webstart,因此我必须使用 getRessource() 或 getRessourceAsStream() 直接从 jar 文件加载数据。

现在总是在开发和部署之间切换这段代码是很烦人的吗?

有没有办法自动化这个?即有没有办法知道代码是否从 jar 运行?

当我尝试使用这样的 jar 加载它时:

InputStream is = this.getClass().getResourceAsStream("file.txt");

返回的输入流只是空,尽管该文件肯定位于应用程序的根目录中。

谢谢!

最佳答案

为什么在开发过程中使用FileInputStream?为什么不从一开始就使用 getResourceAsStream 呢?只要将文件放置在类路径中的适当位置,就不应该有任何问题。它仍然可以是本地文件系统中的文件,而不是 jar 文件中的文件。

考虑到最终部署环境进行开发很有帮助。

编辑:如果您想要类路径的root目录中的某些内容,您应该使用:

InputStream x = getClass().getResourceAsStream("/file.txt");

InputStream x = getClass().getClassLoader().getResourceAsStream("file.txt");

基本上,Class.getResourceAsStream 会将相关资源解析为包含该类的包; ClassLoader.getResourceAsStream 解析与“根”包相关的所有内容。

关于java - 部署期间与开发期间从 JAR 文件加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1694436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com