Anyone think adding more than one JAR would be awesome? Or perhaps any combination of resources?
Only one JAR seems kinda limiting.
P.S. If someone points me in the right direction (e.g., a class name and function), I can send a patch. =)
A little late with this reply, but in case you are still wondering, I have used JarSplice to create a composite jar consisting of my main jar and the ars on which it depends jars so you don't have to deploy any jars along with the executable that launch4j creates. Would that meet your need? http://ninjacave.com/jarsplice
Actually, considering the age of the project, I'm quite amazed launch4j doesn't support multiple jars. I've been creating Swing apps for quite some time and all the package-as-one solutions fail on one point; they all repackage the input jars. This is a problem, because jars can be signed (like the standard mail.jar) and these classes will fail after repackaging. So solutions like one.jar, maven shade plugin or this jarsplice do not cover the full functionality of Java apps.
The only way to get this right is to pack all jars unmodified into an artifact and on execution unpack them to a temporary directory and start java with the classpath setup appropriately. That actually is not that hard and I have an app.jar tool that does this. The only thing is that you need some kind of monitor task, in order to clean up after the application exists. Launch4j would have been perfect for that.
I have tried some tools, JSmooth, exe4j, JWrapper......
Finally I chose Launch4j because it leave no temporary files and its functionality are more or less functional as JSmooth. Though I'm not using swing, just a console prog and I "embed" the JRE and the Launch4j executable as a zip file which I think is the best combination after all.
So if your program doesn't generate anything useful output at the program directory, I think it's completely fine to use JWrapper, which for my case is too cumbersome in the AppData roaming directory (I'm using win7) that it extracted.
I hope the nature of cleanness won't be changed if multiple jars or embedded resources are to be introduced to Launch4j as I love the current Launch4j. The GUI is easy to use (exe4j's one is quite hard to understand), the output exe is UPX friendly(while JSmooth's latest version isn't), and the most important, no temporary files are left after the termination of the executable. (JSmooth would leave some JAR in temp!) I didn't even notice where were the files being generated using PROCMON.
Log in to post a comment.