当前位置: 首页 > 面试题库 >

Java路径ImageIcon URL .JAR

楚泳
2023-03-14
问题内容

我可能尝试过,没有用。

该文件是:

/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
        |       <YourClass.java>

那么以下应该工作

// 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");

使用时,ClassLoader您需要传递资源的完整合格名称,即包括程序包名称。

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

您可以在javadocs中阅读有关ClassLoader#getResource和Class#getResource的更多信息。

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



 类似资料:
  • 问题内容: 我试图了解类路径是如何工作的。在网上搜索之后,这是我到目前为止所到达的地方: 我已经添加了 在。顺便说一下,我正在运行Ubuntu。 Java找到路径并进行编译而没有问题。 问题是,如果我更改CLASSPATH,然后执行以下操作:,则不会应用新的CLASSPATH。当且仅当我重新启动系统时,它才适用。例如,如果我删除了 行,然后我执行/ etc / environment的源代码,最后

  • 现在我试着翻阅了答案和其他问题,但所有的答案都是基于已经获得的关于编程之类的知识。请帮我一步一步地解决这个问题。

  • 我正在Eclipse中使用Maven/Tomcat/Java。我已经制作了这个java servlet,但是当我转到localhost:xxxx/myapp/rest时,我的get请求没有得到响应,我得到的是404。我想如果我将@path设置为/rest,我就可以向url发送一个GET请求,但它不起作用。有人知道是什么问题吗?谢谢你!

  • (还要注意,我处理的是其他系统的抽象路径,这与任何本地文件系统无关) 我想要的行为的进一步示例:

  • 问题内容: 我正在编写一个使用Oracle JDBC驱动程序的Java程序。我已经在我的类路径中设置了它。当我在IDE中运行程序(作为jdbc作为库添加)时,程序运行正常。当我尝试部署它时,它完全忽略了classpath中的清单,并给了我一个NoClassDefFoundError。 我想使用客户端的JDBC驱动程序(已安装的JDBC驱动程序),并且不提供自己的驱动程序。我打包了来自JDevelo

  • 问题内容: 我正在用Java编写截屏应用程序。我决定使用Xuggle进行操作,并且按照xuggle Wiki上的安装说明进行操作。 我使用%XUGGLE_HOME%\ bin和%XUGGLE_HOME%\ lib设置了PATH环境。一切似乎都还可以。我将此应用程序作为RCP插件。我在“ RCP-mail”模板上进行了尝试,插件正常工作,并且视频生成正确。 但是,当我决定在“真实”应用程序上使用它时