当前位置: 首页 > 知识库问答 >
问题:

从外部模块访问资源文件

贺俊杰
2023-03-14
file = getClass().getClassLoader().getResourceAsStream("myfilename"); 

我的项目设置如下:

module playground.api {
    requires java.base;
    requires java.logging;
    requires framework.core;
}

配置文件放在src/main/resources/Config.yml中。

运行项目时使用

java -p target/classes:target/dependency -m framework.core/com.framework.Main

如何以最佳实用的方式实现这一点,使它能够像在Java8中一样工作,并且尽可能少的改动?

共有1个答案

夏侯林
2023-03-14

使用java命令启动应用程序时,如下所示:-

java -p target/classes:target/dependency -m framework.core/com.framework.Main 

>

  • 您正在使用--module-path-paternate选项指定模块路径,该选项将查找模块的目标/类和目标/依赖项。

    此外,使用-m替代--module指定要解析的初始模块,名称为framework.core并使用显式列出为com.framework.main的主类构造要执行的模块图。

    现在,这里的问题似乎是模块framework.corerequires或readplayground.api模块,因为模块图不包括由实际资源config.yml组成的所需模块。

    正如@Alan所建议的,在启动html" target="_blank">过程中列出模块解析输出的一个好方法是使用--show-module-resolution选项。

    我只是天真地尝试打开src/main/resources,不编译ofc

    由于模块中的资源是根级别的,因此它没有被封装,不需要打开或导出到任何其他模块。

    在您的示例中,只需要确保模块playground.api最终出现在模块图中,然后应用程序可以访问该资源。除了初始模块之外,要指定要解析的根模块,可以使用--add-modules选项。

    因此,配合一些调试工作的整体解决方案应该是:

    java --module-path target/classes:target/dependency 
         --module framework.core/com.framework.Main
         --add-modules playground.api
         --show-module-resolution
    

  •  类似资料:
    • 问题内容: 到目前为止,直到未模块化的Java,您只需将文件放入以确保它位于类路径中,然后使用 从classpath的几乎任何地方开始。 现在有了模块,地块变厚了。 我的项目设置如下: 配置文件放在里面。 项目运行于 由于主类不是位于我自己的项目中,而是位于外部框架模块中,因此看不到。现在的问题是,是否有办法以某种方式将我的配置文件放入模块或打开它?我是否必须更改框架上游加载文件的方式? 我尝试在

    • ServletContext接口定义了三个方法来访问当前Web应用程序的资源文件,这三个方法如下: l getResourcePaths方法 该方法返回指定Web应用程序目录中的所有子目录和文件,这些返回的目录文件不包括嵌套目录和文件。这些返回的子目录和文件都封装在该方法返回的一个Set对象中。getResourcePaths方法的定义如下: public Set getResourcePaths

    • 我正在尝试实现动态交付类型的APP。首先,我在create模块之后创建新项目,用于此动态步骤 我的crate类和想要访问资源文件夹的使用布局,可绘制文件夹。 在主模块级实现 实现'com.google.android.play:core:1.2.0'和dynamicFeatures=[“:Dynamic_Feature”] 错误:找不到符号变量activity_main 错误:找不到符号变量iv_

    • Generators 相关文章 The Basics Of ES6 Generators By Kyle Simpson ES6 generators in depth By Axel Rauschmayer redux-saga 相关文章 Redux nowadays : From actions creators to sagas By Riad Benguella Managing Side

    • 全局配置 在 nuxt.config.js 中配置你想引用的资源文件: module.exports = { head: { script: [ { src: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js' } ], link: [ { rel: 'style

    • 问题内容: 我可以像这样使用Javascript访问PHP变量: 但是,如果我想使用外部JS文件怎么办: externaljs.js: 问题答案: 您实际上并没有访问它,而是在为页面提供服务时将其插入到javascript代码中。 但是,如果您的其他JavaScript并非来自外部来源,则可以执行以下操作: 然后在file.js中使用如下颜色: