【问题标题】:Unable to access Resource file in Lotus Notes Java Agent无法访问 Lotus Notes Java 代理中的资源文件
【发布时间】:2012-04-14 00:47:16
【问题描述】:

我在访问导入到 Lotus Notes Java 代理(内容部分)的资源部分的文件时遇到问题。

我正在尝试下面的代码

getClass().getClassLoader().getResource("gift.png").getPath() 

但它每次都返回null 该资源位于 Res/gift.png 中(Res 是 Lotus Java Agent 中的一个文件夹)

我也试过了

InputStream is = JavaAgent.class.getClassLoader().getResourceAsStream("gift.png");

这也返回 null...

我在 lotus java 代理上找不到太多源代码,所以尝试了一些常规的 java 代码。有没有人遇到过类似的问题。或者它们是在 Lotus Java Agent 中访问资源文件的其他方法或方式

【问题讨论】:

    标签: java lotus-notes xpages


    【解决方案1】:

    您会想要: 1)不使用JavaAgent,而是您在代理中使用的您自己的类之一 2) 使用this.getClass().getResourceAsStream("/gift.png"); 3) 它是 / 不是 \ 即使在 Windows 上。 4)您需要以 / 开头,以确保您从代理根目录开始 Hth :-) stw

    更新:“/”相当于src(或编译的bin)文件夹,但res文件夹被复制到编译代理的根目录。所以删掉 /res 部分。或者在 src 文件夹中创建您自己的文件夹。最简单的方法是打开代理进行编辑,然后在这个临时项目上使用导航器。

    【讨论】:

    • 嗨,Stw,我在发布查询之前已经尝试了所有 4 种方法,但有些运气不佳……或者我做错了什么
    • 将所有不是 Java 代理本身的内容包装到您导入的 Jar 中并重试
    • 嗨,stw,我尝试制作一个 jar 文件,但它仍然无法与 Java 代理一起使用。但它适用于使用 eclipse 的简单 java 程序... :(
    • 您可以将资源保存在 src 文件夹中(可以是子文件夹) - 上面的初始答案已更新。
    • 嗨,stw,谢谢,它对我有用getResourceAsStream("/gift.png") 这没关系,但问题仍然出现在gerResource("/gift.png").getPath() 它返回空指针异常......但我可以使用 InputStream现在..
    【解决方案2】:

    我刚刚尝试制作一个包含一个名为“email.html”的导入资源的快速测试代理。在 JavaAgent 主类的 NotesMain() 内部,我能够这样做来读取内容,所以这可能是要走的路:

    InputStream res = this.getClass().getResourceAsStream("/email.html");
    

    所以结果是:显然完全省略了“res”位。

    【讨论】:

      【解决方案3】:

      Res 是代理中的文件夹??没听说过。

      尝试使用正常的资源名称,不带“Res\”,或尝试“Res\gift.png”

      这也可能是一个安全问题,请参阅此处1

      【讨论】:

      • Res is a folder in an agent?? - 我的意思是当您创建一个新的 Java 代理时,您在代理部分(如 eclipse 项目)中有 Res 和存档部分/文件夹,用于添加新资源或 jar 文件。
      猜你喜欢
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      相关资源
      最近更新 更多