Java Path ImageIcon URL .JAR
我可能已经尝试过了,没有人工作过……
该文件是:
/Users/Toto/Desktop/Titi/IUT/Java/TP2/project/src/fichierPointJava/img1.png
fichierPointJava
是包的名称。
当我位于包含build.xml的项目中时,我启动了ant
以下是我测试的代码:
URL urlImage1=this.getClass().getClassLoader.getResource("/src/fichierPointJava/img1.png"); URL urlImage1=this.getClass().getClassLoader.getResource("/fichierPointJava/img1.png"); URL urlImage1=this.getClass().getClassLoader.getResource("fichierPointJava/img1.png"); URL urlImage1=this.getClass().getClassLoader.getResource("/img1.png"); URL urlImage1=this.getClass().getClassLoader.getResource("img1.png"); System.out.println("Value = "+ urlImage1);
无论有没有this
,我有一个遗嘱,有或没有getClassLoader()
希望有人能帮助我。
谢谢
如果您有以下包布局
+---src | img0.png \---fichierPointJava | img1.png |
然后以下应该工作
// using the classloader in instance context getClass().getClassLoader().getResource("img0.png"); getClass().getClassLoader().getResource("fichierPointJava/img1.png"); // using the classloader in class/static context .class.getClassLoader().getResource("img0.png"); .class.getClassLoader().getResource("fichierPointJava/img1.png"); // using the class in instance context getClass().getResource("../img0.png"); getClass().getResource("/img0.png"); getClass().getResource("img1.png"); getClass().getResource("/fichierPointJava/img1.png"); // using the class in static/class context .class.getResource("../img0.png"); .class.getResource("/img0.png"); .class.getResource("img1.png"); .class.getResource("/fichierPointJava/img1.png");
使用ClassLoader
您需要传递资源的完整限定名称,即包括包名称。
使用Class
,路径(如果不是以/
开头)是相对于尝试加载资源的类所在的包,否则它是资源的绝对名称。
您可以在javadocs中阅读有关ClassLoader#getResource和Class#getResource的更多信息。
确保您运行的ant目标创建jar包含*.png
资源。 您可以使用您选择的zip工具打开jar来validation这一点。 不应包含目录src
。