定位jar包内的资源

2024-01-06

我有一个静态类,在该类中图像被加载到 BufferedImage 对象中,如下所示:

File groundTopImageFile = new File("src/main/resources/ground - grass top.png");

现在,当我使用 Maven2 创建可执行 jar 时,一切正常,只是找不到图像文件。我检查了jar,图像文件已全部放入jar的根目录中,因此我尝试使用:

File groundTopImageFile = new File("ground - grass top.png");

但没有成功。同样这样我就不能再在 Eclipse 中使用相同的代码了。有什么办法可以让这个在 jar 和 Eclipse 中都工作吗?

这是我的 Pom.xml 文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.WetWindmill</groupId>
  <artifactId>Sheepness</artifactId>
  <name>Sheepness</name>
  <version>0.0.1-SNAPSHOT</version>
  <description>Equilibrium reaction visualized with sheep :)</description>

  <dependencies>
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.4</version>
    <scope>test</scope>
  </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.5.8</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>unpack-dependencies</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>unpack-dependencies</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <mainClass>controller.Sheepness</mainClass>
              <packageName>com.WetWindmill.Sheepness</packageName>
            </manifest>
            <manifestEntries>
              <mode>under development</mode>
              <url>www.WetWindmill.com/Projects/Sheepness/</url>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
    </plugins>

    <resources>
      <resource>
        <directory>${basedir}/target/dependency</directory>
      </resource>
      <resource>
        <directory>${basedir}/src/main/resources</directory>
      </resource>
    </resources>
  </build>
</project>

Use ImageIO.read(输入流) http://download.oracle.com/javase/6/docs/api/javax/imageio/ImageIO.html#read%28java.io.InputStream%29并阅读InputStream using ClassLoader.getResourceAsStream().

示例代码:

String resourceName = "my/picfolder/mypic.jpg";
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream stream = classLoader.getResourceAsStream(resourceName);
BufferedImage bi = ImageIO.read(stream);

Note:

在我的代码示例中,my/picfolder是相对文件夹层次结构below src/main/resources.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

定位jar包内的资源 的相关文章

  • Java Swing:从 JOptionPane 获取文本值

    我想创建一个用于 POS 系统的新窗口 用户输入的是客户拥有的金额 并且窗口必须显示兑换金额 我是新来的JOptionPane功能 我一直在使用JAVAFX并且它是不同的 这是我的代码 public static void main Str
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • HttpContext.GetGlobalResourceObject 始终返回 null

    我在 App GlobalResources 文件夹中创建了两个文件 SiteResources en US resx SiteResources sp SP resx 两者都包含 SiteTitleSeparator 的值 这是我想要做的
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List

随机推荐

  • 在模拟器上运行 iOS 应用程序,无需构建应用程序

    我想知道是否可以在模拟器上 运行 Xcode 项目 而无需先 构建源代码 当我单击 Xcode 4 0 2 中的 运行 按钮时 它首先构建 然后运行它 是否可以在不构建的情况下运行 如果可能的话 你会怎么做 Edit 这听起来可能是一个奇怪
  • AngularJS 1.2 - ngAnimate 不工作

    我刚开始在 AngularJS 1 2 中使用 ng animate 我不确定为什么我的 ng animate 不能使用某个类名 但可以使用我在示例中看到的简单淡入淡出的默认值 在此示例中 我尝试将 ng animate 类设置为 动画 h
  • numba - guvectorize 只比 jit 快一点

    我试图并行化在许多独立数据集上运行的蒙特卡罗模拟 我发现 numba 的并行 guvectorize 实现仅比 numba jit 实现快 30 40 我找到了这些 1 https stackoverflow com questions 3
  • 如何每 5 分钟执行一次 cron 作业?

    JobDetail job1 JobBuilder newJob FirstJob class withIdentity job1 group1 build Trigger trigger1 TriggerBuilder newTrigge
  • 在 Moq 中为返回 void 的方法分配输出参数

    In 这个问题 https stackoverflow com questions 1068095 assigning out ref parameters in moq 我找到了一个这个答案 https stackoverflow com
  • 修改 Firebase - 动态链接的应用程序预览页面

    有人尝试过从 Firebase 修改此应用程序预览页面吗 我们为其中一个应用程序设置了动态链接并启用了预览页面 我们希望翻译默认字符串 有没有办法翻译一下这句话 保存我在应用程序中的位置 将复制链接以继续此操作 页 以及按钮上的文字 OK
  • 泛型构造函数的好处

    为非泛型类提供泛型构造函数有什么好处 Java 规范允许以下内容 class NonGeneric
  • 如果 isAvailableForServiceType 方法返回 NO 我该怎么办

    如果我能做什么isAvailableForServiceType例如 如果是 Twitter 方法会返回 NO if SLComposeViewController isAvailableForServiceType SLServiceTy
  • 是否可以使用 navigator.share 共享文件(PDF)而不是 url?

    我有一个从服务器生成的 pdf 文件 我希望允许用户通过 navigator share 共享该文件 是否可以共享文件而不是 URL navigator share title Web Fundamentals text Check out
  • 删除由于 gnuplot 中突然跳跃而导致的垂直线

    我正在尝试绘制一个包含 gnuplot 中不连续性的函数 结果 gnuplot 自动绘制一条连接跳跃不连续点的垂直线 我想删除这一行 我环顾四周 发现了两种解决方案 但都不起作用 一种解决方案是使用smooth unique绘图时 另一种是
  • 实际类型的值比较不正确

    我有领域REAL输入数据库 我使用 PostgreSQL 和查询 SELECT FROM my table WHERE my field 0 15 不返回包含以下值的行my field is 0 15 但例如查询 SELECT FROM m
  • VSCode 调试 C++:为什么流程不在断点处停止?

    VSCode 版本 1 3 1 操作系统版本 Ubuntu 14 04 我在 Ubuntu 14 04 上调试 C 项目 我运行 cmake 来生成可执行文件并设置 VSCode 配置文件 当我按F5调试时 程序运行良好 但没有停在断点处
  • 如何显示 Google 字体预览

    我正在将 Google 字体系列名称加载到选择列表中 当用户从列表中选择任何字体系列时 我会动态加载该字体 我的代码 get https www googleapis com webfonts v1 webfonts key functio
  • CakePHP 单元测试装置名称约定 啊?

    我一直在用头撞墙 试图找出为什么我的灯具无法正确加载 当我尝试运行测试时 会呈现我的布局 如果我注释掉该装置 测试就会正常运行 我已经把这个问题看了一百遍了 但我似乎看不出哪里出了问题 这是我的 Videosview test php Ap
  • 如何定量测量源和显示器之间的 gstreamer H264 延迟?

    我有一个项目 我们使用 gstreamer x264 等将视频流通过本地网络多播到多个接收器 连接到显示器的专用计算机 我们在视频源 摄像机 系统和显示监视器上使用 gstreamer 我们使用 RTP 有效负载 96 和 libx264
  • 在 Base SAS 中,如何自动刷新资源管理器?

    我相当确定这一定是困扰其他人的问题 因此必须有一个解决方案 我编写代码并想要快速检查数据集 但它不存在 我需要选择窗口 单击 查看 然后单击 刷新 是否有我可以使用的键盘快捷键或我可以编写的宏来为我做到这一点 我知道这很懒 但它让我烦恼 任
  • 按日期绘制 Twitter 搜索结果的词云? (使用R)

    我希望在 twitter 上搜索一个单词 假设是 google 然后能够生成 twitts 中使用的单词的标签云 但是根据日期 例如 有一个小时的移动窗口 移动时间为每次 10 分钟 并向我展示不同的单词如何在一天中被更频繁地使用 对于如何
  • 如何将 WindowsIdentity 转换为 NetworkCredential?

    我们如何转换一个WindowsIdentity to a NetworkCredential 我正在测试我的 WCF 服务以验证匿名调用者是否被阻止 为此 我想做类似的事情 myProxy ClientCredentials Windows
  • jquery在不同领域检测常用词

    在 jquery 中 如何确定一个元素是否使用了另一个元素中正在使用的单词 例如 如果一个字段包含值 fishbucket 而另一个字段包含fishdome 那么您将如何扫描这两个字段来获取常用词 在本例中为 fish 或者即使是数字 假设
  • 定位jar包内的资源

    我有一个静态类 在该类中图像被加载到 BufferedImage 对象中 如下所示 File groundTopImageFile new File src main resources ground grass top png 现在 当我