Why not Java resources?
Java resources allow developers to access program resources and
data files without explicit access to a filesystem. This is usually
sufficient if all the resources in question are conceptually part of
the program. The main problem that jvvfs
attempts to solve is the problem of the set of required resources not
being known or available on program startup.
Consider a game or simulation that allows the loading of third-party
levels or other assets. The
OpenTTD
engine is a good example of this, as it comes with a built-in installer
for third party content:
Implementing the above with Java resources turns out to be rather
complicated. Overriding resources (to allow for content "upgrades")
is equally difficult.
The jvvfs package provides a uniform
namespace for all resources, and new resources can be added at any time
by simply adding new archives and/or directories to the
archive directory and then mounting them
as explained elsewhere in this documentation. The actual downloading of
external resource archives is considered to be outside of the scope of
jvvfs and can be easily provided by
classes in the Java standard library.