在 Eclipse 中运行时加载资源时出现问题

2023-12-14

我正在开发一个 swing 项目,使用 maven2 (从命令行)和 eclipse (没有 Maven 集成)。所以,我通过生成 eclipse 项目Maven Eclipse 插件 (mvn eclipse:eclipse),将其导入到 eclipse 中,并完成我所有的工作。

我的问题是:当我在 eclipse 中运行我的应用程序(作为 Java 应用程序)时,我找不到 src 目录中的任何资源。挖掘有关我的问题的信息,我进入这个答案来自另一个问题。因此,我比较了以下指令的输出:

MyClass.class.getResource("/").getPath();
MyClass.class.getProtectionDomain().getCodeSource().getLocation().toString();

这些分别给了我以下输出:

${workspace_loc}/${my_project}/target/test-classes/ 文件:/${workspace_loc}/${my_project}/target/classes/

检查上述位置,我可以看到前者是空的,而另一个包含我编译的所有类和资源。所以,我得出的结论是类加载器正在错误的位置寻找我的资源。所以,我想我有三个问题:

  1. 我的理解正确吗?
  2. 如果是这样,它如何找到正在加载的类?
  3. 我该如何解决这个问题?

更新:我改变了我的代码,所以不用调用MyClass.class.getResource(...) or MyClass.class.getResourceAsStream(...),我现在正在使用ClassLoader.getSystemResource(...) and ClassLoader.getSystemResourceAsStream(...)。这样,在eclipse中就一切正常了。我只是不知道到底为什么。有什么提示吗?


对我来说有两种可能的情况:

  • 您正在使用 eclipse 来编译您的项目。然后将 eclipse 配置为排除(或不包含)src 文件夹中的资源。您可以在 Project/Properties/Java Build Path/Source 中设置它。然后展开 src 文件夹,并确保有“全部包含”、“不排除任何”之类的内容。

  • 即使您使用 eclipse 作为 IDE,您也可以使用 maven 来编译而不是 eclipse 来运行 Maven 应用程序。那么默认情况下maven不会将资源从源文件夹复制到输出文件夹...因为它不是标准的maven做事方式。因此,类路径中缺少该资源,并且您找不到它们。只需更改您的 Maven 配置以包含源文件夹中的资源即可。

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

在 Eclipse 中运行时加载资源时出现问题 的相关文章

随机推荐

  • 如何使用 webpack 混淆 js 文件

    我想在 public js 中混淆我的 js 文件 但在混淆之前 是否可以先在我的 public 文件夹外部的其他目录中传输 然后混淆的结果将在 public js 中 先感谢您 我的回答来得很晚 但我建议https obfuscator
  • 值类型何时存储在堆栈中(C#)?

    当我阅读下一本书的 值和引用类型 一章时 我想到了一个问题 值类型何时存储在堆栈中 因为程序员无法在类外初始化任何值类型 因为当我们在类中初始化一些值类型的变量时 变量就会存储在堆中 我的问题是 值类型什么时候存储在堆栈中 好吧 首先 您很
  • CMake 无法与 Google Protobuf 配合使用

    无法使用 CMake 链接 protobuf 库 我的 CMakeLists 是 cmake minimum required VERSION 3 6 project addressbook set CMAKE CXX STANDARD 1
  • 不带计数器的自定义周期函数

    我在用ode45求解一个简单的 ODE function dCdt u vent t C if t gt 600 t lt 720 Q Q2 elseif t gt 1320 t lt 1440 Q Q2 elseif t gt 2040
  • 获取日期时间之间的时间差

    如何求2次之间的差值 例子 var now 04 09 2013 15 00 00 var then 04 09 2013 14 20 30 expected result 00 39 30 I tried var now moment 0
  • JavaScript 监听器不断增加

    我实现了一个网络应用程序并使用谷歌开发人员工具监控了性能 我注意到听众不断增加 听众数量也在不断增加 听众增加的部分看起来像这样 let ival interval function http get someurl this call i
  • 使用 ffmpeg 进行转换,无需执行

    我的 Windows XP Apache PHP 5 3 和 ffmpeg 工作正常 我需要将 flv 转换为 avi 或反之亦然 而不使用exec 命令 这可能吗 谢谢 编辑 我希望有人可以编辑 ffmpeg 源代码并在 php 扩展中实
  • csh 上的自连接字符串

    我需要将 argv 中的部分内容连接到我的变量之一 我将向您展示我的代码 bin csh set stringList foreach param argv if param TEST then set stringList stringL
  • 为什么不使用 IoC 容器来解决实体/业务对象的依赖关系?

    我了解 DI 背后的概念 但我只是在学习不同的 IoC 容器可以做什么 似乎大多数人都主张使用 IoC 容器来连接无状态服务 但是将它们用于实体等有状态对象呢 无论是对还是错 我通常都会用行为填充我的实体 即使该行为需要外部类 例子 pub
  • CSS3:检测 iPhone 的设备方向

    所以这个声明适用于 iOS 4 和 4 1 但不适用于旧版本 有什么建议吗 media screen and device width 320px and orientation portrait iPhone Portrait Style
  • 当值改变时MySQL增加用户变量

    我有一个由组组成的表 例如 每组五行 每组中的每一行都拥有一个date该群体独有的价值 我想要在查询中执行的操作是遍历表 并在执行此操作时增加用户变量 count date值变化 也就是说 count 应该等于组数 而不是行数 我当前的查询
  • 将集合 S 公平划分为 k 个分区

    存在一个集合 S 其中包含 N 个整数 每个整数的值为 1fair还需要定义 例如 目标可能是最小化分区值与集合 S 平均值的标准偏差 即 sum S k 例如S 10 15 12 13 30 5 k 3 一个好的分区是 30 10 15
  • 如何通过Selenium和Webdriver提高执行速度

    测试脚本执行过程中速度非常慢 不知道原因 这是我的脚本 driver Navigate GoToUrl url driver Manage Timeouts ImplicitWait TimeSpan FromSeconds 20 driv
  • QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka 转换器

    我需要处理YUVAndroid 上 H W 解码输出的数据 实际上 我使用的是Nexus4 解码输出格式是QOMX COLOR FormatYUV420PackedSemiPlanar64x32Tile2m8ka type 但是我需要YUV
  • 防止 MS-SQL 表中的循环引用

    我有一个包含 ID 和 ParentAccountID 的帐户表 以下是重现这些步骤的脚本 如果 ParentAccountID 为 NULL 则该帐户被视为顶级帐户 每个帐户最终应以顶级帐户结束 即 ParentAccountID 为 N
  • Google Apps脚本中的持久变量[重复]

    这个问题在这里已经有答案了 以下始终显示 0 var gNumber 0 function myTest Browser msgBox gNumber gNumber 当然 我可以使用 ScriptProperties 或 UserProp
  • 《小阴谋家》中的 Y 组合器讨论

    所以 我花了很多时间阅读并重新阅读第9章的结尾小阴谋家 其中应用 Y 组合器是为length功能 我认为我的困惑可以归结为一个对比两个版本长度的语句 在组合器被分解之前 A lambda mk length mk length mk len
  • 反序列化具有多种数据类型的 JSON 文件作为一个键

    我想分析 Telegram Chats 因此我以 JSON 格式导出了一个聊天记录 并希望将其反序列化到我的分析软件中 id 397910 type message date 2018 02 21T10 27 59 edited 1970
  • Google Maps API v3 多个标记信息窗口

    我使用下面的代码来显示带有多个标记和信息窗口的地图 现在我遇到了所有标记上显示最后一个信息窗口的非常常见的问题 我尝试过各种解决方案 包括 http you arenot me 2010 06 29 google maps api v3 0
  • 在 Eclipse 中运行时加载资源时出现问题

    我正在开发一个 swing 项目 使用 maven2 从命令行 和 eclipse 没有 Maven 集成 所以 我通过生成 eclipse 项目Maven Eclipse 插件 mvn eclipse eclipse 将其导入到 ecli