相关疑难解决方法(0)

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

我正在研究一个swing项目,使用maven2(来自命令行)和eclipse(没有maven集成).所以,我通过maven eclipse插件(mvn eclipse:eclipse)生成eclipse项目,在eclipse中导入它,并完成我的所有工作.

我的问题是:当我在eclipse中运行我的应用程序(作为Java应用程序)时,我找不到我的src目录中的任何资源.挖掘我的问题的信息,我从另一个问题进入这个答案.所以,我比较了以下说明的输出:

MyClass.class.getResource("/").getPath();
MyClass.class.getProtectionDomain().getCodeSource().getLocation().toString();
Run Code Online (Sandbox Code Playgroud)

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

$ {workspace_loc}/$ {my_project}/target/test-classes/file:/ $ {workspace_loc}/$ {my_project}/target/classes /

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

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

更新:我已经改变了我的代码,所以不是调用MyClass.class.getResource(...)或者MyClass.class.getResourceAsStream(...),我现在正在使用ClassLoader.getSystemResource(...)和ClassLoader.getSystemResourceAsStream(...).通过这种方式,在日食中一切正常.我只是不知道为什么.有什么暗示吗?

java eclipse maven-2 classloader

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

标签 统计

classloader ×1

eclipse ×1

java ×1

maven-2 ×1