javafx.scene.image.Image("flower.png")在哪里寻找flower.png?

jew*_*sea 19 javafx javafx-2

我想知道JavaFX Image构造函数的相对路径解析算法是什么:

  1. 独立的应用程序.
  2. 浏览器部署的应用
  3. Webstart部署了应用程序.

如果算法可能在多个位置查找,我想知道它们对于上述每个部署方案的用途.

如果应用程序放在jar中时独立应用程序的行为不同,我也想知道.

Ser*_*nev 14

然后用户提供它的相对路径new Image(String url)将相对于app的workdirSystem.getProperty("user.dir")

  1. 对于独立应用程序,它是您启动应用程序的文件夹
  2. 对于从命令行(javaws myfxapp.jnlp)运行的web-start应用程序,它的工作方式与独立应用程序相同
  3. 对于从浏览器加载的插件启动或webstart应用程序,您无法可靠地确定workdir位置.它取决于浏览器甚至是该浏览器的已安装插件.

因此,总体方向是:对于独立应用程序,使用url与您使用它相同的方式new File(String url).对于jnlp/plugin,请使用带有协议或Class.getResource()方法的完整URL .

更新:请注意,这种行为将在2.2中得到澄清和更改.见http://javafx-jira.kenai.com/browse/RT-18291

以下评论来自RT-18291,并概述了2.2的预期变化:

Martin Sladecek添加了评论 - 2012年5月15日上午10:53在与Richard Bair讨论后,我们决定改变路径的当前(未记录的)行为.目前,它们被视为user.dir relative.所有带有或不带有前导斜杠的路径现在将被解析为相对于类路径,这将与CSS一致,更多对应于用户期望的内容.对于user.dir相对路径,仍可使用"file:"URL.