I’d like to write a Java app which can create executable jars at runtime. The “hello world” of what I want to do is write a Java app X that when run, generates an executable jar Y that when run, prints hello world (or perhaps another string not known until after Y is run).
How can I accomplish this?
The other answers require starting a new process, this is a method that doesn’t. Here are 3 class definitions which produce the hello world scenario described in the question.
When you run XMain.main, it generates /tmp/y.jar. Then, when you run this at the command line:
It prints:
example/YMain.java
example/XMain.java
example/Util.java