【问题标题】:Add resource file to artifact in Intellij Idea在 Intellij Idea 中将资源文件添加到工件
【发布时间】:2012-08-03 06:55:06
【问题描述】:

我正在创建一个插件来反映并由主应用程序调用。这个插件使用 xml 文件,我想让它成为嵌入式资源。我将插件构建为工件(JAR)。我的行动:

1) 将xml文件放入配置为'source root'的目录'trunk/res';

2) 对 'trunk/res' 目录所在的模块执行'make module' 操作;

3)进入插件我通过文件路径dom = db.parse("trunk//res//resource.xml");访问xml文件

但是当我从主应用程序调用插件时,我得到这个关于系统找不到文件'MainApp/trunk/trunk/res/resource.xml' 的异常。 我想我没有正确提取资源,但是如何正确提取呢?

【问题讨论】:

  • 所以resource.xml 位于jar 中?
  • 如果trunk/res是root,为什么要在路径中指定呢? db.parse 是如何加载资源的?为什么是双斜线?
  • 是的,Artifacts|Output Layout 显示 jar 包含 resource.xml (...\PlugnProject\trunk\res)
  • @Zharro 你能解压你的 jar 并检查 resource.xml 是否真的在其中并显示 jar 文件的结构。
  • @Nikita Beloglazov 是的。 jar 包含文件:JarContent\res\resource.xml

标签: java resources intellij-idea


【解决方案1】:

尝试调用:

System.out.println(getClass().getProtectionDomain().getCodeSource().getLocation());

看看你是否真的从 jar 调用。 然后

InputStream xmlFileStream = getClass().getClassloader().getResourceAsStream("res\\AIP_82.xml")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 2017-07-01
    相关资源
    最近更新 更多