< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/main/Main.java

Print this page

 31 import java.io.PrintWriter;
 32 import java.io.Writer;
 33 import java.net.URL;
 34 import java.nio.file.Files;
 35 import java.nio.file.NoSuchFileException;
 36 import java.nio.file.Path;
 37 import java.nio.file.Paths;
 38 import java.security.CodeSource;
 39 import java.security.DigestInputStream;
 40 import java.security.MessageDigest;
 41 import java.security.NoSuchAlgorithmException;
 42 import java.text.SimpleDateFormat;
 43 import java.util.Calendar;
 44 import java.util.Set;
 45 import java.util.regex.Matcher;
 46 import java.util.regex.Pattern;
 47 
 48 import javax.tools.JavaFileManager;
 49 
 50 import com.sun.tools.javac.api.BasicJavacTask;

 51 import com.sun.tools.javac.file.CacheFSInfo;
 52 import com.sun.tools.javac.file.BaseFileManager;
 53 import com.sun.tools.javac.file.JavacFileManager;
 54 import com.sun.tools.javac.jvm.Target;
 55 import com.sun.tools.javac.platform.PlatformDescription;
 56 import com.sun.tools.javac.processing.AnnotationProcessingError;
 57 import com.sun.tools.javac.resources.CompilerProperties.Errors;
 58 import com.sun.tools.javac.util.*;
 59 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticInfo;
 60 import com.sun.tools.javac.util.Log.PrefixKind;
 61 import com.sun.tools.javac.util.Log.WriterKind;
 62 
 63 import jdk.internal.opt.CommandLine;
 64 import jdk.internal.opt.CommandLine.UnmatchedQuote;
 65 
 66 /** This class provides a command line interface to the javac compiler.
 67  *
 68  *  <p><b>This is NOT part of any supported API.
 69  *  If you write code that depends on this, you do so at your own risk.
 70  *  This code and its internal interfaces are subject to change or

283             return Result.OK;
284 
285         // init Dependencies
286         if (options.isSet("debug.completionDeps")) {
287             Dependencies.GraphDependencies.preRegister(context);
288         }
289 
290         BasicJavacTask t = (BasicJavacTask) BasicJavacTask.instance(context);
291 
292         // init plugins
293         Set<List<String>> pluginOpts = args.getPluginOpts();
294         t.initPlugins(pluginOpts);
295 
296         // init multi-release jar handling
297         if (fileManager.isSupportedOption(Option.MULTIRELEASE.primaryName) == 1) {
298             Target target = Target.instance(context);
299             List<String> list = List.of(target.multiReleaseValue());
300             fileManager.handleOption(Option.MULTIRELEASE.primaryName, list.iterator());
301         }
302 






303         // init JavaCompiler
304         JavaCompiler comp = JavaCompiler.instance(context);
305 
306         // init doclint
307         List<String> docLintOpts = args.getDocLintOpts();
308         if (!docLintOpts.isEmpty()) {
309             t.initDocLint(docLintOpts);
310         }
311 
312         if (options.get(Option.XSTDOUT) != null) {
313             // Stdout reassigned - ask compiler to close it when it is done
314             comp.closeables = comp.closeables.prepend(log.getWriter(WriterKind.NOTICE));
315         }
316 
317         boolean printArgsToFile = options.isSet("printArgsToFile");
318         try {
319             comp.compile(args.getFileObjects(), args.getClassNames(), null, List.nil());
320 
321             if (log.expectDiagKeys != null) {
322                 if (log.expectDiagKeys.isEmpty()) {

 31 import java.io.PrintWriter;
 32 import java.io.Writer;
 33 import java.net.URL;
 34 import java.nio.file.Files;
 35 import java.nio.file.NoSuchFileException;
 36 import java.nio.file.Path;
 37 import java.nio.file.Paths;
 38 import java.security.CodeSource;
 39 import java.security.DigestInputStream;
 40 import java.security.MessageDigest;
 41 import java.security.NoSuchAlgorithmException;
 42 import java.text.SimpleDateFormat;
 43 import java.util.Calendar;
 44 import java.util.Set;
 45 import java.util.regex.Matcher;
 46 import java.util.regex.Pattern;
 47 
 48 import javax.tools.JavaFileManager;
 49 
 50 import com.sun.tools.javac.api.BasicJavacTask;
 51 import com.sun.tools.javac.code.Preview;
 52 import com.sun.tools.javac.file.CacheFSInfo;
 53 import com.sun.tools.javac.file.BaseFileManager;
 54 import com.sun.tools.javac.file.JavacFileManager;
 55 import com.sun.tools.javac.jvm.Target;
 56 import com.sun.tools.javac.platform.PlatformDescription;
 57 import com.sun.tools.javac.processing.AnnotationProcessingError;
 58 import com.sun.tools.javac.resources.CompilerProperties.Errors;
 59 import com.sun.tools.javac.util.*;
 60 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticInfo;
 61 import com.sun.tools.javac.util.Log.PrefixKind;
 62 import com.sun.tools.javac.util.Log.WriterKind;
 63 
 64 import jdk.internal.opt.CommandLine;
 65 import jdk.internal.opt.CommandLine.UnmatchedQuote;
 66 
 67 /** This class provides a command line interface to the javac compiler.
 68  *
 69  *  <p><b>This is NOT part of any supported API.
 70  *  If you write code that depends on this, you do so at your own risk.
 71  *  This code and its internal interfaces are subject to change or

284             return Result.OK;
285 
286         // init Dependencies
287         if (options.isSet("debug.completionDeps")) {
288             Dependencies.GraphDependencies.preRegister(context);
289         }
290 
291         BasicJavacTask t = (BasicJavacTask) BasicJavacTask.instance(context);
292 
293         // init plugins
294         Set<List<String>> pluginOpts = args.getPluginOpts();
295         t.initPlugins(pluginOpts);
296 
297         // init multi-release jar handling
298         if (fileManager.isSupportedOption(Option.MULTIRELEASE.primaryName) == 1) {
299             Target target = Target.instance(context);
300             List<String> list = List.of(target.multiReleaseValue());
301             fileManager.handleOption(Option.MULTIRELEASE.primaryName, list.iterator());
302         }
303 
304         // pass preview mode to the file manager:
305         if (fileManager.isSupportedOption(Option.PREVIEWMODE.primaryName) == 1) {
306             Preview preview = Preview.instance(context);
307             fileManager.handleOption(Option.PREVIEWMODE.primaryName, List.of(String.valueOf(preview.isEnabled())).iterator());
308         }
309 
310         // init JavaCompiler
311         JavaCompiler comp = JavaCompiler.instance(context);
312 
313         // init doclint
314         List<String> docLintOpts = args.getDocLintOpts();
315         if (!docLintOpts.isEmpty()) {
316             t.initDocLint(docLintOpts);
317         }
318 
319         if (options.get(Option.XSTDOUT) != null) {
320             // Stdout reassigned - ask compiler to close it when it is done
321             comp.closeables = comp.closeables.prepend(log.getWriter(WriterKind.NOTICE));
322         }
323 
324         boolean printArgsToFile = options.isSet("printArgsToFile");
325         try {
326             comp.compile(args.getFileObjects(), args.getClassNames(), null, List.nil());
327 
328             if (log.expectDiagKeys != null) {
329                 if (log.expectDiagKeys.isEmpty()) {
< prev index next >