 <p>If you invoque a main method inside your java application you won't start a new Java application.</p> <p>In that case, you're executing a static method, just like any other static method, so the current directory is the same as the working directory of your current Java application.</p> <p>If you're looking for a way to execute a java application inside an existing Java application you have to create another process.</p> <p>An example:</p> <pre><code> List&lt;String&gt; command = new ArrayList&lt;String&gt;(); command.add("java -jar xxxxx.jar"); command.add("argument to Main method"); command.add("another argument to Main method"); ProcessBuilder builder = new ProcessBuilder(command); File workingDirectory = new File("/myworkingdirectory"); builder.directory(workingDirectory); Process process = builder.start(); </code></pre>