相关疑难解决方法(0)

如何枚举包中的所有类并将它们添加到List?

我需要枚举包中的所有类并将它们添加到List中.单个类的非动态版本如下:

List allClasses = new ArrayList();
allClasses.add(String.class);
Run Code Online (Sandbox Code Playgroud)

如何动态地添加包中的所有类及其所有子包?


更新:在阅读了早期答案之后,我试图解决另一个次要问题是绝对正确的,所以让我说明一下.我知道这是可能的,因为其他工具可以做到这一点.在这里查看新问题.

更新:再次阅读本文,我可以看到它是如何被误读的.我想在编译后从文件系统中枚举所有MY PROJECT'S类.

java

31
推荐指数
2
解决办法
5万
查看次数

从另一个jar文件访问资源

我有一个简单的结构:一个包含一批数据的数据jar文件,以及一个使用该数据运行服务的服务jar文件.为了使数据易于替换,我将它们分开,service.jar的classpath包含data.jar所在的目录.

在service.jar中,我使用getResource来加载数据文件.如果数据文件直接位于文件夹中,但是当它们位于data.jar内时失败,则此方法有效;

这失败了:

all
+ globalclasspath
| + data.jar
|   + mine.properties
+ daemons
  + service.jar

jsvc -cp globalclasspath:daemons/service.jar (...)

MyClass.class.getClassLoader( ).getResource( "mine.properties" ); // <-- null
Run Code Online (Sandbox Code Playgroud)

但这有效:

all
+ globalclasspath
| + mine.properties
+ daemons
  + service.jar

jsvc -cp globalclasspath:daemons/service.jar (...)

MyClass.class.getClassLoader( ).getResource( "mine.properties" ); // <-- not null
Run Code Online (Sandbox Code Playgroud)

我不想更改类路径(除非我可以将它改为通用的,不依赖于数据jar文件的名称),但是我可以更改getResource字符串(我试过/数据) /mine.properties和/data.jar/mine.properties无济于事.我可以进行更改,以便可以从jar中加载资源吗?

java classpath jsvc

12
推荐指数
1
解决办法
1万
查看次数

使用Java访问类路径中特定文件夹中的文件

我想在com.example.resources包中读取一堆文本文件.我可以使用以下代码读取单个文件:

InputStream is = MyObject.class.getResourceAsStream("resources/file1.txt")
InputStreamReader sReader = new InputStreamReader(is);
BefferedReader bReader = new BufferedReader(sReader);
...
Run Code Online (Sandbox Code Playgroud)

有没有办法获取文件列表,然后将每个元素传递给getResourceAsStream

编辑:在ramsinb建议我改变我的代码如下:

BufferedReader br = new BufferedReader(new InputStreamReader(MyObject.class.getResourceAsStream("resources")));
String fileName;
while((fileName = br.readLine()) != null){ 
   // access fileName 
}
Run Code Online (Sandbox Code Playgroud)

java io

11
推荐指数
1
解决办法
1万
查看次数

在 jar 中运行时从资源文件夹中获取文件名列表

我在“resource/json/templates”文件夹中有一些 Json 文件。我想读取这些 Json 文件。到目前为止,下面的代码片段允许我在 IDE 中运行程序时执行此操作,但在 jar 中运行程序时失败。

  JSONParser parser = new JSONParser();
  ClassLoader loader = getClass().getClassLoader();
  URL url = loader.getResource(templateDirectory);
  String path = url.getPath();
  File[] files = new File(path).listFiles();
  PipelineTemplateRepo pipelineTemplateRepo = new PipelineTemplateRepoImpl();
  File templateFile;
  JSONObject templateJson;
  PipelineTemplateVo templateFromFile;
  PipelineTemplateVo templateFromDB;
  String templateName;


  for (int i = 0; i < files.length; i++) {
    if (files[i].isFile()) {
      templateFile = files[i];
      templateJson = (JSONObject) parser.parse(new FileReader(templateFile));
      //Other logic
    }
  }
}
catch (Exception e) {
  e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

多谢。

java jar fileinputstream

10
推荐指数
2
解决办法
2万
查看次数

在Java中获取包内的一组类文件

我需要一个包含在我的Java源代码包中的所有类文件的Class [].

我找不到一个标准的方法来一次性完成它.如果有人可以编写一个函数来获取该列表将非常有用.

Class[] myClasses = yourfunction();  // Return a list of class inside a source package in the currently working project in java
Run Code Online (Sandbox Code Playgroud)

java class

8
推荐指数
1
解决办法
1万
查看次数

jar文件夹中的资源列表?

通常我从jar文件中读取资源如下:

getClassLoader().getResource(pTextPath + "/" + pLang +".xml");
Run Code Online (Sandbox Code Playgroud)

我需要从jar文件中的已知文件夹中读取具有特定名称的所有资源.例如,阅读*.xml

插件/资源/文

我可以根据路径和名称模板以某种方式从jar文件列表中获取资源吗?

更新:完全重复从类路径目录获取资源列表请关闭问题.

java resources tomcat servlets jar

6
推荐指数
1
解决办法
6085
查看次数

getResourceAsStream 的目录列表行为是否记录在任何地方?

各种答案(例如,从类路径目录获取资源列表)表明,如果您调用getResourceAsStream目录,返回的流将包含目录中的项目列表,每行一个。这似乎没有记录在ClassLoader Javadoc 中。它是在其他地方指定的,还是只是人们依赖的实现细节?

java

5
推荐指数
1
解决办法
221
查看次数

获取用于执行Web应用程序的类路径条目

我需要读取CLASSPATH当前Web应用程序的条目.在CLASSPATH我与此同名的许多文件.我想检查它们在classpath中出现的位置.例如:path:\file.txt;path2:\file.txt....

谢谢您的帮助.

亲切的问候塞巴斯蒂安

java web-applications classpath

4
推荐指数
2
解决办法
7962
查看次数

如何使JUnit测试从main访问资源?

我正在使用以下调用来获取流,以便可以找到一些资源的文件名。

Thread.currentThread().getContextClassLoader().getResourceAsStream(...)
Run Code Online (Sandbox Code Playgroud)

当我正常运行代码时,这可以正常工作;如果将资源复制到测试文件夹中,则也可以工作。

如何避免这种重复并使我的测试(通过IDEA运行时)使用main中的资源?

java junit intellij-idea maven

2
推荐指数
1
解决办法
1201
查看次数

如何列出Resources文件夹中的所有文件(java/scala)

我正在编写一个函数,需要访问资源中的文件夹,并循环遍历所有文件名,如果这些文件符合条件,则加载这些文件。

new File(getClass.getResource("/images/sprites").getPath).listFiles()
Run Code Online (Sandbox Code Playgroud)

返回空指针异常,其中目录树遵循Resources -> images -> sprites ->

请有人指出我正确的方向吗?

java resources scala

2
推荐指数
2
解决办法
9353
查看次数