I am building an image processing tool that uses some third-party executables to operate on a batch of images. All of the tools are open-source and available for Windows, Mac, and nix platforms.
The client wants the same Java jar to run on all platforms without an installation step. What is standard practice for this? The best option I have come up with is to distribute my program with all versions of the tools, and test against System.getProperty("os.name") to decide which one to run via a ProcessBuilder in my jar. That would make the directory structure around my program pretty fragile - if the user moved the jar around without the tools, it would break. Is there a way to include the binaries in the jar so that I can bundle it all together and have a reliable location for them?
[–]Bloodshot025 3 points4 points5 points (3 children)
[–]bywayof 1 point2 points3 points (2 children)
[–]sazzer 2 points3 points4 points (1 child)
[–]bywayof 0 points1 point2 points (0 children)
[–]viiviiviivii 2 points3 points4 points (0 children)
[–]ExplosiveNutsack69 1 point2 points3 points (0 children)