【问题标题】:JavaFX - MVC - How can I load images from another packageJavaFX - MVC - 如何从另一个包加载图像
【发布时间】:2015-01-25 15:36:35
【问题描述】:

导出到可运行 jar 时出现问题。

基本上我正在创建一个 JavaFx 游戏,它通过以下方式加载图像:

Image image = new Image(BlueCar.class.getResource("../resources/blueCar.png").toExternalForm());

在 Eclipse 中一切正常。但是,当我尝试导出并运行它时,上面的代码行会出错。

http://i.imgur.com/VbmGSO3.jpg

我在应用程序中使用 MVC 模式,所以我有包将类与图像资源分开:

http://i.imgur.com/gzm7d0s.jpg

如果你能帮忙知道我做错了什么吗?

【问题讨论】:

    标签: java javafx-2 executable-jar


    【解决方案1】:

    Jar 文件系统不支持相对路径 - 使用绝对路径 getClass().getClassloader().getResource("path/to/resource/blueCar.jpg")

    【讨论】:

    • 在这种情况下尝试使用完整路径时出现错误:C:\Users\blid\Desktop\Aldo\SWA\Game Project SWA\Assignment1\src\assignment1\resources \0.png 对吗?
    • 路径不是文件系统的绝对路径,而是类加载器的绝对路径 - 例如,如果文件位于 a.b.c 包中,则路径为 a/b/c/myfile.png
    • 在您的示例中是 assignment1/resources/0.png
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多