Java 类加载器的异常行为

Java 类加载器的异常行为,java,class,load,inputstream,Java,Class,Load,Inputstream,className:使用class.forName()加载的类 名称:存在于同一目录中的资源的名称 问题:结果总是空的 尽管我已经尝试了很多方法,但有人能告诉我上面的代码有什么问题吗?几天前我自己也遇到过同样的问题。但是我发现我传名字的方式是错误的。我的意思是我把相对路径和绝对路径搞砸了。如果找不到名称,则会抛出nullpointerException 要检查您的代码是否正常,问题只是名称,只需对名称的整个路径进行硬编码,并确保其已加载。如果是这样的话,那就是你必须纠正的冷漠问题。其次,唯一的另

className:使用class.forName()加载的类

名称:存在于同一目录中的资源的名称

问题:结果总是空的


尽管我已经尝试了很多方法,但有人能告诉我上面的代码有什么问题吗?

几天前我自己也遇到过同样的问题。但是我发现我传名字的方式是错误的。我的意思是我把相对路径和绝对路径搞砸了。如果找不到名称,则会抛出nullpointerException

要检查您的代码是否正常,问题只是名称,只需对名称的整个路径进行硬编码,并确保其已加载。如果是这样的话,那就是你必须纠正的冷漠问题。其次,唯一的另一个问题是,如果您是从静态块加载它,那么语法可能会有所不同。否则应该没有问题

一个很好的地方,在那里你可以检查出文件的加载是


如果有帮助,请告诉我

几天前我自己也面临同样的问题。但是我发现我传名字的方式是错误的。我的意思是我把相对路径和绝对路径搞砸了。如果找不到名称,则会抛出nullpointerException

要检查您的代码是否正常,问题只是名称,只需对名称的整个路径进行硬编码,并确保其已加载。如果是这样的话,那就是你必须纠正的冷漠问题。其次,唯一的另一个问题是,如果您是从静态块加载它,那么语法可能会有所不同。否则应该没有问题

一个很好的地方,在那里你可以检查出文件的加载是


如果有帮助,请告诉我

如果您的所有图像都在jar文件中,那么我假设您会创建一个单独的图像文件夹。这样,您只需替换图像名称,就可以以相同的方式访问所有图像。我相信的是,一旦创建了jar文件,其中的所有内容都会爆炸。如果您的图像放在父文件夹下,即com/demo/images,那么您只需使用上述方法并提供一个默认路径,即getResourceasStream(/com/demo/images/image001.jpeg)。还有一种更好的方法。当你在服务器上部署时,你可以创建一个单独的images文件夹作为系统属性,然后简单地执行system.getenv(prop_name),这样它就可以立即遍历到该映像位置。实际上有几种方法可以做到这一点。

如果您的所有图像都在jar文件中,那么我假设您会创建一个单独的图像文件夹。这样,您只需替换图像名称,就可以以相同的方式访问所有图像。我相信的是,一旦创建了jar文件,其中的所有内容都会爆炸。如果您的图像放在父文件夹下,即com/demo/images,那么您只需使用上述方法并提供一个默认路径,即getResourceasStream(/com/demo/images/image001.jpeg)。还有一种更好的方法。当你在服务器上部署时,你可以创建一个单独的images文件夹作为系统属性,然后简单地执行system.getenv(prop_name),这样它就可以立即遍历到该映像位置。实际上,有几种方法可以做到这一点。

谢谢拉维什,解决方案正在发挥作用。我没有将“.”替换为“/”,现在它在替换后工作正常。但我有一个问题。。我在同一位置的一些图像没有被加载,但我可以在jar文件中看到它们。你知道这背后可能的原因吗。谢谢Hanks Ravesh,解决方案正在发挥作用。我没有将“.”替换为“/”,现在它在替换后工作正常。但我有一个问题。。我在同一位置的一些图像没有被加载,但我可以在jar文件中看到它们。你知道这背后可能的原因吗。谢谢,你能解释一下如何将图像文件夹创建为系统属性吗?你能解释一下如何将图像文件夹创建为系统属性吗?
public InputStream getResourceAsStream ( Class className, String name){
       InputStream in = null;
       in = className.getClassLoader().getResourceAsStream(name);
       return in;
   }