I would like to know what the JavaFX Image constructor's relative path resolution algorithm is for:
If the algorithm may look in multiple locations, I'd like to know what they are for each of the above deployment scenarios.
If the behaviour for stand-alone apps is different when the app is placed in a jar, I'd like to know that too.
Then user provides relative path to
new Image(String url) it will be relative against workdir of the app aka
javaws myfxapp.jnlp) it works the same way as with standalone app
So general direction is: for standalone apps use
url same way as you'll use it in
new File(String url). For jnlp/plugin use full url with protocol or
Update: Please, note, this behavior is going to be clarified and changed in 2.2. See http://javafx-jira.kenai.com/browse/RT-18291
The following comment is from RT-18291 and outlines the intended changes for 2.2:
Martin Sladecek added a comment - May, 15 2012 10:53 AM After discussion with Richard Bair, we decided to change the current (undocumented) behavior for paths. Currently, they are treated as user.dir relative. All path, with or without leading slash will be now resolved as relative to classpath, which will be consistent with CSS and more corresponds to what might users expect. For user.dir relative paths, "file:" URL can be still used.
The answer is "/" if case you are using
getClass().getResourceAsStream(), i.e. the root of your jar file (inside it). Not user.dir nor where the package is hosted