content: /*
   * Copyright (c) 1999, 2020, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.  Oracle designates this
   * particular file as subject to the "Classpath" exception as provided
   * by Oracle in the LICENSE file that accompanied this code.
   *
   * This code is distributed in the hope that it will be useful, but WITHOUT
   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   * version 2 for more details (a copy is included in the LICENSE file that
   * accompanied this code).
   *
   * You should have received a copy of the GNU General Public License version
   * 2 along with this work; if not, write to the Free Software Foundation,
   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   *
   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   * or visit www.oracle.com if you need additional information or have any
   * questions.
   */
  
  package openjdk.tools.javac;
  
  import java.io.PrintWriter;
  
  /**
   * A legacy programmatic interface for the Java Programming Language
   * compiler, javac.
   * See the <a href="{@docRoot}/jdk.compiler/module-summary.html">{@code jdk.compiler}</a>
   * module for details on replacement APIs.
   */
  public class Main {
      public Main(){}
  
      /** Main entry point for the launcher.
       *  Note: This method calls System.exit.
       *  @param args command line arguments
       *  @throws Exception only if an uncaught internal exception occurs;
       *      just retained for historical compatibility
       */
      public static void main(String[] args) throws Exception {
          System.exit(compile(args));
      }
  
      /** Programmatic interface to the Java Programming Language
       * compiler, javac.
       *
       * @param args The command line arguments that would normally be
       * passed to the javac program as described in the man page.
       * @return an integer equivalent to the exit value from invoking
       * javac, see the man page for details.
       */
      public static int compile(String[] args) {
          openjdk.tools.javac.main.Main compiler =
              new openjdk.tools.javac.main.Main("javac");
          return compiler.compile(args).exitCode;
      }
  
  
  
      /** Programmatic interface to the Java Programming Language
       * compiler, javac.
       *
       * @param args The command line arguments that would normally be
       * passed to the javac program as described in the man page.
       * @param out PrintWriter to which the compiler's diagnostic
       * output is directed.
       * @return an integer equivalent to the exit value from invoking
       * javac, see the man page for details.
       */
      public static int compile(String[] args, PrintWriter out) {
          openjdk.tools.javac.main.Main compiler =
              new openjdk.tools.javac.main.Main("javac", out);
          return compiler.compile(args).exitCode;
      }
  }
  