Java路径ImageIcon URL.JAR

Java路径ImageIcon URL.JAR,java,url,path,embedded-resource,imageicon,Java,Url,Path,Embedded Resource,Imageicon,我可能已经尝试过了,但没有一个是有效的 该文件是: /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.p

我可能已经尝试过了,但没有一个是有效的

该文件是:

/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);
我写了一份遗嘱,有没有这个,有没有getClassLoader()

希望有人能帮助我


如果您有以下软件包布局,谢谢您

+---src
    |   img0.png
    \---fichierPointJava
        |       img1.png
        |       <YourClass.java>
+--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
<YourClass>.class.getClassLoader().getResource("img0.png");
<YourClass>.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
<YourClass>.class.getResource("../img0.png");
<YourClass>.class.getResource("/img0.png");
<YourClass>.class.getResource("img1.png");
<YourClass>.class.getResource("/fichierPointJava/img1.png");
//在实例上下文中使用类加载器
getClass().getClassLoader().getResource(“img0.png”);
getClass().getClassLoader().getResource(“fichierPointJava/img1.png”);
//在类/静态上下文中使用类加载器
.class.getClassLoader().getResource(“img0.png”);
.class.getClassLoader().getResource(“fichierPointJava/img1.png”);
//在实例上下文中使用类
getClass().getResource(“../img0.png”);
getClass().getResource(“/img0.png”);
getClass().getResource(“img1.png”);
getClass().getResource(“/fichierPointJava/img1.png”);
//在静态/类上下文中使用类
.class.getResource(“../img0.png”);
.class.getResource(“/img0.png”);
.class.getResource(“img1.png”);
.class.getResource(“/fichierPointJava/img1.png”);
使用
ClassLoader
时,需要传递资源的完整限定名,即包括包名

使用
时,路径(如果不是以
/
开头)相对于试图加载资源的类所在的包,否则它是资源的绝对名称

您可以在javadocs中阅读更多关于和的信息


确保正在运行以创建jar的ant目标包含
*.png
资源。您可以通过使用您选择的zip工具打开jar来验证这一点。目录
src
不应包括在内。

您确定它在您的jar中吗?我会打开它进行验证。谢谢,但它不起作用。。URL urlImage1=getClass().getClassLoader().getResource(“fichierPointJava/img1.png”);System.out.println(“Value=“+urlImage1”);它打印“null”@AymenZero,然后检查图像是否打包到jar文件中!你检查过文件在你的jar里了吗?jar tvf YourFile.jar输出什么?0星期二6月4日20:49:28 CEST 2013 META-INF/143星期二6月4日20:49:26 CEST 2013 META-INF/MANIFEST.MF 0星期二6月4日20:49:24 CEST 2013 fichierPointJava/1398星期二6月4日20:49:24 CEST 2013 fichierPointJava/Femme$1.class 5332星期二6月4日20:49:24 CEST 2013 fichierPointJava/Femme.class耶,jar文件中没有该文件。那么,我必须在build.xml中执行它?还是什么?谢谢大家help@AymenZero请编辑您的问题并将xml snipet发布到创建jar的目标。