首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JAVA中引用Azure函数中的文件?

如何在JAVA中引用Azure函数中的文件?
EN

Stack Overflow用户
提问于 2020-11-17 03:20:26
回答 1查看 169关注 0票数 1

我已经查看了其他5个提出相同问题的问题,但它们都不起作用。我能够将资源文件夹部署到函数的可运行.jar所在的wwwroot

/resources.jar位于同一目录中。

我曾尝试将资源与jar路径捆绑在一起,并使用this.getClass().getResource('resources/file.txt')进行访问,但由于某些原因,它在云环境中不起作用,而且,我正在使用的File要求我使用原生Java。

作为参考,以下是部署Azure函数后结构的屏幕截图:

如上所述,该.jar文件需要访问/resources文件夹。

EN

回答 1

Stack Overflow用户

发布于 2021-06-21 23:08:47

我也遇到了同样的问题,为了让它在本地和azure上都能工作,我想出了这个解决方案:

代码语言:javascript
复制
    String filename = "myfile.dat";
    InputStream stream = null;
    try {
        stream = MyFunction.class.getClassLoader().getResourceAsStream(filename);
        if (stream == null) {
            ctx.getLogger().severe(format("file [%s] not found", certificateName));
            ctx.getLogger().warning("assuming azure environment, using absolute path /home/site/wwwroot/" + filename);
            stream = new FileInputStream("/home/site/wwwroot/" + filename);
        }
     //...rest of the code, catch clause...

getClassLoader().getResourceAsStream流将正确读取您放置在src/main/resources中的文件,并且FileInputStream将查看部署中的绝对路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64864366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档