假设标准maven设置.
在资源文件夹中说你有一个文件abc.
在Java中,我如何获得文件的绝对路径?
我有以下目录布局:
- SRC
- 主要
- java的
- 资源
- sql(数据库脚本)
- 弹簧(配置)
- Web应用程序
在ServletContextListener类中,我想访问SQL目录下的文件并列出它们.基本上我的问题是路径,因为我知道简单地列出目录下的文件是:
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
Run Code Online (Sandbox Code Playgroud)
也许我可以使用ServletContextEventObject来尝试构建路径resources/sql
public void contextInitialized(ServletContextEvent event) {
event.getServletContext(); //(getRealPath etc.)
}
Run Code Online (Sandbox Code Playgroud)
是否存在以相对的非硬编码方式设置该路径的东西?像new File("classpath:sql")(最好是弹簧,如果可能的话)或者我应该用servletContext指向resources/sql什么?
在单元测试中,我需要导入一个csv文件.它位于资源文件夹中,即src/test/resources
在我的单元测试中,我想在$ {project.build.directory}中创建一个tmp目录.如何在单元测试中访问$ {project.build.directory}的值?
我能想到的一种方法是在测试资源中提供过滤的属性文件,该文件保留该值.(我还没有尝试,但我认为这应该有效.)
是否有直接访问/传递此属性值的方法?
此致,弗洛里安
我目前正在开发一个现有项目,该项目有一个带有以下内容的pom.xml文件:
<resources>
<resource>
<filtering>false</filtering>
<directory>src</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
Run Code Online (Sandbox Code Playgroud)
我在基本路径中有一个名为properties的目录,其中包含属性文件.我想复制打包属性/在我的src目录下包含的所有属性文件(否则程序会因缺少配置文件而崩溃).
所以我的问题是:
我怎么能用Maven包含不在src目录下的资源文件?
我试试这个,但它似乎不起作用:
<resources>
<resource>
<filtering>false</filtering>
<directory>src</directory>
<includes>
<include>**/*.properties</include>
<include>../properties/**</include>
</includes>
</resource>
</resources>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我有以下目录结构的Maven的模块,我想要得到的路径abc.access中abcManager.java.
src
|-main
|-java
|-org.abc.xyz
|-init
|-abcManager.java
|-resources
|-abc.access
Run Code Online (Sandbox Code Playgroud)
我尝试使用abcManager.class.getResource("abc.access")它,但它给出了一个空值。
我经历了以下问题,但解决方案不起作用。
我试图在我的单元测试中从类路径中读取一个文件:
@Value("classpath:state.json")
Resource stateFile;
Run Code Online (Sandbox Code Playgroud)
我有state.json目录中的src/test/resources文件.当我尝试使用时读取此文件时stateFile.getInputStream(),它不会返回任何内容.我究竟做错了什么?
我的测试类注释如下
@RunWith(SpringRunner.class)
@SpringBootTest
Run Code Online (Sandbox Code Playgroud)
我可以看到,如果我尝试使用不正确的文件,代码将失败.所以我认为它在类路径中看到文件,但由于某种原因没有读取内容.