Hello, The use case is different.
I have an eclipse project. Within eclipse IDE I use IvyDE. However during development sometimes I want to start my application outside of IDE (due to Eclipse performance issues). I do it by a batch file (Windows). From documentation I saw that it is possible to use Ivy not only as part of the build but also as the application launcher from a batch file. See the link to Ivy doc bellow. http://ant.apache.org/ivy/history/2.0.0/standalone.html So I wrote a batch file which starts my application using Ivy launcher which offers great possibility to resolve all dependencies at the moment of start using the same ivy.xml . * **java -jar ivy-2.0.4.jar -ivy ivy.xml -confs default -main com.my.MainClass -cp .\classes* However I noticed that my application stared using Ivy launcher terminates prematurely. I looked at the source code of Ivy launcher, and i noticed that the launcher starts the application using specified class and its main method, however as soon as the main of the called class ends Ivy launcher *calls System.exit() which terminates the VM.* My application is a mulch-threaded server an *my main method just sets up and starts up the application and exits.**The application lives as long as the last non-daemon thread terminates. ** ** *The assumption made by Ive designers/developers that each application should terminate as soon as when its main terminates is wrong. In Java the application terminates when its last non-daemon thread stops. In present version using Ivy as an application launcher is not possible because*it just kills the VM much too early*. See the source code from Ivy launcher (this comes from sources of Ivy: *org.apache.ivy.Main*). *In bold you can see the problematic line of code which kill s the VM.* *I believe that it could be removed making Ivy launcher usable.* public static void main(String[] args) throws Exception { CommandLineParser parser = getParser(); try { run(parser, args); *System.exit(0); * } catch (ParseException ex) { System.err.println(ex.getMessage()); usage(parser, false); System.exit(1); } } I would appreciate if this could be fixed. Best regards and greetings.