在 Eclipse 中哪里存储 java 项目的资源(图像、数据文件……)?

2023-11-29

不确定这个基本问题是否已经得到解答。

从参考资料以及在SO上找到的答案,我了解到在Eclipse中,“源文件夹”是JDT将搜索源文件并编译它们的文件夹。

还提到每个源文件夹可能有一个对应的文件夹来存储已编译的类。也许这就是为什么项目的通常“src”文件夹的内容被编译到“bin”文件夹中(在 Eclipse 中使用此类 src/bin 项目选项时)。

Question:存储其他非源文件的位置,例如图标、安全策略还是数据文件?我猜这是在“常规”文件夹中,但在项目层次结构中的哪个级别(通常)?是否可以将其放入源文件夹中(我们为什么要这样做)?编译后会发生什么,或者导出到 .jar 文件,在什么情况下将文件复制到 .jar 中?相对路径是否保留?


这纯粹是传统的。您可以将它们全部存储在src如果你想。

然而,如果你想坚持 Maven 或 Gradle 约定,那么你应该有类似的东西:

  • src/main/java:主要源文件,将被编译然后分发(jar等)
  • src/main/resources:主要资源,分布式。
  • src/test/java:测试源文件,又名 Junit 测试
  • src/test/resources: 测试资源。

Maven 会将所有 Java 编译成target/classes并将所有资源复制到target/classes。对于测试来说,这将是target/test-classes.

另外,如果你想访问你的类所在的 Jar 中的资源,你不应该使用new File("...") or Paths.get(...) but 获取资源作为流或其对应物获取资源:

try (Scanner scanner = new Scanner(MyClass.class.getResourceAsStream("/myfile.txt"))) {
  while (scanner.hasNextLine()) {
    System.out.println(scanner.nextLine());
  }
}

这可能会抛出一个 NPE 如果/myfile.txt没找到。

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

在 Eclipse 中哪里存储 java 项目的资源(图像、数据文件……)? 的相关文章

  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 多个 Maven 配置文件激活多个 Spring 配置文件

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

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

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • Mockito when().thenReturn 不必要地调用该方法

    我正在研究继承的代码 我编写了一个应该捕获 NullPointerException 的测试 因为它试图从 null 对象调用方法 Test expected NullPointerException class public void c
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • Eclipse Java 远程调试器通过 VPN 速度极慢

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

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • Android 中麦克风的后台访问

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

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两
  • Spring Boot @ConfigurationProperties 不从环境中检索属性

    我正在使用 Spring Boot 1 2 1 并尝试创建一个 ConfigurationProperties带有验证的bean 如下所示 package com sampleapp import java net URL import j

随机推荐

  • Java - 对非静态字段列表进行静态引用

    我刚刚进行了实验 发现当我运行滚动代码时 它无法编译 我不明白为什么 我的 IDE 说 无法对非静态字段列表进行静态引用 但我不太明白这是什么或为什么 它还适用于什么 即 它只是私有变量和 或方法吗 为什么 public class MyL
  • 加速度计移动的距离

    我想通过移动 iPhone 来移动 iPhone 屏幕上的对象 矩形 圆形等 例如 我沿 X 轴移动 iPhone 物体也沿 X 轴移动 Y Z轴同样如此 我怎样才能做到这一点 我可以得到它的算法吗 谢谢 附 我看了一会儿 似乎可以使用加速
  • 无法使用Python登录亚马逊

    我正在使用 Python 3 编写一个脚本来登录 Amazon 以获取我的 Kindle 亮点 它基于这篇文章 https blog jverkamp com 2015 07 02 scraping kindle highlights 我无
  • iOS8 AVAudioEngine 如何通过多点连接发送麦克风数据?

    我想通过多点连接 iOS 8 发送麦克风音频数据 并通过接收方的扬声器播放它 我还设置了 AVAudioEngine 并且可以从 上方 扬声器输出听到麦克风数据 但我不知道如何通过网络发送 AVAudioPCMBuffer 这是我的代码片段
  • 全局变量的值在 ValueEventListener 中初始化后会重置

    我有一个名为 bg 的全局变量 它在 firebase 数据库引用 myRef 的 ValueEventListener 内初始化 但是 如果我尝试在 valueeventlistener 块之外使用变量的值 则该变量为空 就好像被重置了一
  • 使用 Big Query 将 firebase event_params 键值数据显示到单行中

    我正在尝试对 Firebase 存储的事件执行 Google BigQuery 我已经执行了以下查询 SELECT FROM myTable LIMIT 6 其结果如下 Row date name event params key even
  • 如何查找已安装的 .NET 版本?

    如何查明安装的 NET 版本 我正在寻找像这样简单的东西java version我可以在命令提示符下输入它 它会告诉我当前安装的版本 我最好补充一点 可能未安装 Visual Studio 这通常是我想了解的有关客户端计算机的信息 有一种更
  • JavaScript - 对 SELECT 选项进行排序

    我使用 PHP 扫描目录并列出所有 xml 文件 每个 XML 文件都包含 名称 元素和 日期 元素 每个 XML 文件的 name 元素作为选项列在选择列表中 这工作得很好 但是 每个 XML 文件中的 日期 元素都不同 并且包含如下日期
  • sclite (SCTK)、C++ 模板参数 Filter::Filter* 无效。西格文

    Problem 我目前正在尝试安装 NISTsclite 它是 SCTK 2 4 0 的一部分 github or 新版本 我正在尝试安装Cygwin in bash 安装是使用完成的make 我能够解决一个问题file format no
  • empty() 不是一个有效的回调?

    我正在尝试在 php ini 的数组映射中使用empty 我收到错误消息 表明这不是有效的回调 cat test php
  • Facebook Graph API - 使用 JavaScript 上传照片

    是否可以使用 JavaScript 使用 Facebook Graph API 上传文件 我觉得我已经很接近了 我正在使用以下 JavaScript var params params message PicRolled params so
  • 连接 ECONNREFUSED 127.0.0.1:27017'

    我有那个代码 var express require express stylus require stylus logger require morgan bodyParser require body parser mongoose r
  • 允许用户仅在 firebase 上修改自己的数据

    我试图阻止黑客修改或查看我的 Firebase 数据库上的数据 我的数据库中的用户包含 身份验证 选项卡中所有用户的用户 ID 我可以让数据库只让登录用户查看数据吗 这是我的数据库结构 Firebase数据库结构 我想允许用户在 用户 中修
  • char 设备捕获多个(int)ioctl 参数

    我必须编写一个linux char设备 它处理每个unlock ioctl的ioctl 没有BKL 函数 目前 我可以从用户空间 ioctl 命令接收一个参数 get user myint int user arg 我如何接收多个 int
  • 如何将数据从Vue实例传递到组件

    首先 我必须说我已经花了几个小时在这上面 所以如果我忽略了一些愚蠢简单的事情 那么我深表歉意 我正在尝试让一个组件通过根 Vue 实例与另一个组件通信 到目前为止 我已经设法让 MakeComponent 向根实例发送消息 如下所示 con
  • Makefile 编译源文件列表

    我有我希望 Makefile 编译的文件列表 每种源语言都有一个列表 CFILES Src Application main c Src Core data c Lib routines c ASFILES Src Application
  • Ruby google_drive gem oAuth2 保存

    因此 在更新之前 有一种简单的方法可以登录谷歌驱动器并操作您的谷歌文档 使用 ruby 在您能够使用此登录您的谷歌驱动器之前 require google drive session GoogleDrive login email prot
  • setOneShotPreviewCallback 未在回调中点击 onPreviewFrame()

    我正在为我正在制作的应用程序创建视频捕获活动 并且我想捕获预览帧以用作播放按钮 我已经设置了SurfaceView up in onCreate 并连接相机的预览显示SurfaceHolder Callback private Callba
  • tsc 抛出“TS2307:找不到本地文件的模块”

    我有一个使用 TypeScript 的简单示例项目 https github com unindented ts webpack example Running tsc p with tsc版本 1 8 10 抛出以下内容 app inde
  • 在 Eclipse 中哪里存储 java 项目的资源(图像、数据文件……)?

    不确定这个基本问题是否已经得到解答 从参考资料以及在SO上找到的答案 我了解到在Eclipse中 源文件夹 是JDT将搜索源文件并编译它们的文件夹 还提到每个源文件夹可能有一个对应的文件夹来存储已编译的类 也许这就是为什么项目的通常 src