作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我查看了其他 5 个提出同样问题的问题,但没有一个有效。我能够将资源文件夹部署到可运行的 .jar
所在的 wwwroot
中,以供该函数使用。
/resources
与 .jar
位于同一目录中。
我尝试过将资源与 jar 路径捆绑在一起,并使用 this.getClass().getResource('resources/file.txt')
进行访问,但它在云上不起作用由于某种原因,我正在使用的 SDK 要求我使用 native Java File
api。
以下是部署 Azure Function 后结构的屏幕截图,供引用:
如上所示,.jar
文件需要访问 /resources
文件夹。
最佳答案
我遇到了同样的问题,并想出了这个解决方法,以便让它在本地和 azure 上运行:
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
将查看部署中的绝对路径。
关于java - 如何在 JAVA 中引用 Azure Functions 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64864366/
我是一名优秀的程序员,十分优秀!