title: Running the Eclipse Java formatter on the command line with eclipse 4.4
body: <p>I'm trying to run the eclipse java formatter on the command line using the <a href="http://help.eclipse.org/mars/index.jsphttp://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-231.htm" rel="nofollow noreferrer">code formatter docs</a> but it's failing with an exception message of </p>
  
  <pre><code>&lt;current working directory&gt;/--launcher.library file does not exist.
  </code></pre>
  
  <p>Looking at the <a href="http://grepcode.com/file/repo1.maven.org/maven2/org.eclipse.xtext/org.eclipse.xtext.dependencies/2.7.2/org/eclipse/jdt/core/formatter/CodeFormatterApplication.java" rel="nofollow noreferrer">code formatter application code</a> it seems like what is happening is that some of the eclipse arguments are being interpreted by the formatter's command line parser as relative file names, which don't exist.</p>
  
  <p>I'm aware that <a href="https://stackoverflow.com/questions/384101/can-the-eclipse-java-formatter-be-used-stand-alone">some people used to be able to get this to work</a>, but that was more than 5 years ago using an older version of eclipse, and I'm wondering if someone has been able to use the same feature with eclipse 4.4?</p>
  
  <p><strong>Update 1:</strong></p>
  
  <p>Here is the command line that I used:</p>
  
  <pre><code>/home/alexq/eclipse-luna-SR2-4.4.2/eclipse/eclipse -nosplash -consolelog -debug -application org.eclipse.jdt.core.JavaCodeFormatter -verbose -config /home/alexq/eclipse-user-files/formatter-config-for-scripts/MyCodingStandards.ini /home/alexq/eclipse-4.4.2-workspaces/MyWorkspace/MyProject/src/com/example/myproject/MyClassToBeFormatted.java
  </code></pre>
  
  <p>Here is the content of my eclipse.ini file:</p>
  
  <pre><code>-showlocation
  -vm
  /home/alexq/JavaSE8/jdk1.8/bin/java
  -startup
  plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
  --launcher.library
  plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20150204-1316
  -product
  org.eclipse.epp.package.jee.product
  --launcher.defaultAction
  openFile
  -showsplash
  org.eclipse.platform
  --launcher.XXMaxPermSize
  256m
  --launcher.defaultAction
  openFile
  --launcher.appendVmargs
  -vmargs
  -Dosgi.requiredJavaVersion=1.6
  -XX:MaxPermSize=256m
  -Xms40m
  -Xmx512m
  -Dorg.eclipse.swt.browser.XULRunnerPath=''
  </code></pre>
  
  <p>And here is the output from that command:</p>
  
  <pre><code>Start VM: /home/alexq/JavaSE8/jdk1.8/bin/java
  -Dosgi.requiredJavaVersion=1.6
  -XX:MaxPermSize=256m
  -Xms40m
  -Xmx512m
  -Dorg.eclipse.swt.browser.XULRunnerPath=''
  -jar /home/alexq/eclipse-luna-SR2-4.4.2/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
  -os linux
  -ws gtk
  -arch x86_64
  -launcher /home/alexq/eclipse-luna-SR2-4.4.2/eclipse/eclipse
  -name Eclipse
  --launcher.library /home/alexq/eclipse-luna-SR2-4.4.2/eclipse//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20150204-1316/eclipse_1607.so
  -startup /home/alexq/eclipse-luna-SR2-4.4.2/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
  --launcher.appendVmargs
  -exitdata 1008087
  -showlocation
  -product org.eclipse.epp.package.jee.product
  -consolelog
  -debug
  -application org.eclipse.jdt.core.JavaCodeFormatter
  -verbose
  -config /home/alexq/eclipse-user-files/formatter-config-for-scripts/MyCodingStandards.ini
  /home/alexq/eclipse-4.4.2-workspaces/MyWorkspace/MyProject/src/com/example/myproject/MyClass.java
  -vm /home/alexq/JavaSE8/jdk1.8/bin/java
  -vmargs
  -Dosgi.requiredJavaVersion=1.6
  -XX:MaxPermSize=256m
  -Xms40m
  -Xmx512m
  -Dorg.eclipse.swt.browser.XULRunnerPath=''
  -jar /home/alexq/eclipse-luna-SR2-4.4.2/eclipse//plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar 
  Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
  Install location:
      file:/home/alexq/eclipse-luna-SR2-4.4.2/eclipse/
  Configuration file:
      file:/home/alexq/eclipse-luna-SR2-4.4.2/eclipse/configuration/config.ini loaded
  Configuration location:
      file:/home/alexq/eclipse-luna-SR2-4.4.2/eclipse/configuration/
  Framework located:
      file:/home/alexq/eclipse-luna-SR2-4.4.2/eclipse/plugins/org.eclipse.osgi_3.10.2.v20150203-1939.jar
  Loading extension: reference:file:org.eclipse.osgi.compatibility.state_1.0.1.v20140709-1414.jar
          eclipse.properties not found
  Framework classpath:
      file:/home/alexq/eclipse-luna-SR2-4.4.2/eclipse/plugins/org.eclipse.osgi_3.10.2.v20150203-1939.jar
      file:/home/alexq/eclipse-luna-SR2-4.4.2/eclipse/plugins/
      file:/home/alexq/eclipse-luna-SR2-4.4.2/eclipse/plugins/org.eclipse.osgi.compatibility.state_1.0.1.v20140709-1414.jar
  Debug options:
      file:/home/alexq/eclipse-4.4.2-workspaces/MyWorkspace/MyProject/.options not found
  Time to load bundles: 3
  org.eclipse.m2e.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was activated before the state location was initialized.  Will retry after the state location is initialized.
  Starting application: 1459
  org.eclipse.m2e.logback.configuration: Logback config file: /home/alexq/workspace/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.5.1.20150109-1820.xml
  org.eclipse.m2e.logback.configuration: Initializing logback
  /home/alexq/eclipse-4.4.2-workspaces/MyWorkspace/MyProject/-showlocation does not exist. Please try specifying valid absolute path. 
  
  Usage: eclipse -application org.eclipse.jdt.core.JavaCodeFormatter [ OPTIONS ] -config &lt;configFile&gt; &lt;files&gt;
  
     &lt;files&gt;   Java source files and/or directories to format.
               Only files ending with .java will be formatted in the given directory.
     -config &lt;configFile&gt; Use the formatting style from the specified properties file.
                          Refer to the help documentation to find out how to generate this file.
  
   OPTIONS:
  
     -help                Display this message.
     -quiet               Only print error messages.
     -verbose             Be verbose about the formatting job.
  </code></pre>