我想知道JavaFX Image构造函数的相对路径解析算法的用途:
如果算法可能在多个位置查找,我想知道上述每个部署方案的用途。
如果应用程序放在jar中时独立应用程序的行为不同,我也想知道。
答案 0 :(得分:13)
然后,用户提供new Image(String url)
的相对路径,它将相对于应用程序的工作目录System.getProperty("user.dir")
javaws myfxapp.jnlp
)运行的web-start应用程序,它的工作方式与独立应用程序相同总体方向是:对于独立应用,使用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 AM 在与Richard Bair讨论后,我们决定改变路径的当前(未记录的)行为。目前,它们被视为user.dir relative。所有带有或不带有前导斜杠的路径现在将被解析为相对于类路径,这将与CSS一致,更多对应于用户期望的内容。 对于user.dir相对路径,仍可使用“file:”URL。
答案 1 :(得分:2)
如果您正在使用getClass().getResourceAsStream()
,即jar文件的根(在其中),答案是“/”。不是user.dir,也不是托管包的地方
答案 2 :(得分:0)
getClass().getName().toString()
的名称),将图像复制并粘贴到那里Image image=new Image(getClass().getResourceAsStream("yourImageName.jpg"));
是必须的。在NetBeans中,存在类的目录NetBeansProjects / JavaFXProjectName / build / classes / packageName /