1ecj(13 March 2017) ecj(13 March 2017)
2
3
4
6 ecj - the eclipse JDT Batch Compiler
7
8
10 ecj [OPTION]... [SOURCEFILE]... ...
11
13 ecj is the batch compiler from Eclipse and is available as ecj.jar.
14 Since 3.3, this jar also contains the support for jsr199 (Compiler API)
15 and the support for jsr269 (Annotation processing). In order to use the
16 annotations processing support, a 1.6 VM is required.
17
18
20 Here is a summary of all the options, grouped by type. Explanations
21 are in the OPTIONS section.
22
23 Module Options
24
25 --add-exports --add-modules --add-reads --limit-modules -p|--module-
26 path --module-source-path --processor-module-path --system
27
28 ClassPath Options
29
30 -bootclasspath -cp|-classpath -extdirs -endorseddirs -sourcepath -d
31 -encoding
32
33 Compliance Options
34
35 -target -1.3 -1.4 -1.5 -1.6 -1.7 -1.8 1.9 -source --release
36
37 Warning Options
38
39 -?:warn -help:warn -warn:... -nowarn -err:... -deprecation -properties
40
41 Debug Options
42
43 -g -preserveAllLocals -parameters
44
45 Annotation Processing Options
46
47 -Akey[=value] -proc:[only|none] -processor -processorpath -s -Xprint‐
48 ProcessorInfo -XprintRounds -classNames
49
50 Ignored Options (for compatibility with javac options)
51
52 -J -X -O
53
54 Advanced Options
55
56 @<file> -maxProblems -log -Xemacs -proceedOnError -verbose -reference‐
57 Info -progress -time -noExit -repeat -inlineJSR -enableJavaDoc -miss‐
58 ingNullDefault
59
60 Helping Options
61
62 -? -help -v -version -showversion
63
64
66 Module Options (Supported from 9 onwards)
67
68
69 --add-exports <source-module>/<package>=<target-module>(,<target-mod‐
70 ule>)*
71 A command line form of exports statement which exports the pack‐
72 age in source-module to the comma separated list of target mod‐
73 ules.
74
75
76 --add-modules <module 1>,<module 2>,...,<module P>
77 Extend the default set of root modules with a list of comma sep‐
78 arated modules.
79
80
81 --add-reads <source-module>=<target-module>
82 A command line form of a requires clause equivalent to adding
83 requires source-module in target modules module-info file.
84
85
86 --limit-modules <module 1>,<module 2>,...,<module P>
87 Limit the observable modules to the list of comma separated mod‐
88 ules.
89
90
91 -p|--module-path <dir 1>;<dir 2>;...;<dir P>
92 This is a list of directories where application modules can be
93 found. Entries are separated by the platform path separator.
94
95
96 --module-source-path <dir 1>;<dir 2>;...;<dir P>
97 This is a list of directories where source files for modules can
98 be found. Entries are separated by the platform path separator.
99
100
101 --processor-module-path <path>
102 module path where annotation processors can be found.
103
104
105 --system <jdk>
106 Override location of system modules.
107
108
109 ClassPath Options
110
111
112 -bootclasspath <dir 1>;<dir 2>;...;<dir P>
113 This is a list of directories or jar files used to bootstrap the
114 class files used by the compiler. By default the libraries of
115 the running VM are used. Entries are separated by the platform
116 path separator. Each directory or file can specify access rules
117 for types between '[' and ']'. If no bootclasspath is speci‐
118 fied, the compiler will infer it using the following system
119 properties sun.boot.class.path, vm.boot.class.path or
120 org.apache.harmony.boot.class.path in this order respectively
121
122
123 -cp|-classpath <dir 1>;dir2;...<dir P>
124 This is a list of directories or jar files used to compile the
125 source files. The default value is the value of the property
126 "java.class.path". Entries are separated by the platform path
127 separator. Each directory or file can specify access rules for
128 types between '[' and ']' (e.g. [-X] to forbid access to type X,
129 [~X] to discourage access to type X, [+p/X:-p/*] to forbid
130 access to all types in package p but allow access to p/X). The
131 compiler follows the Class-Path clauses of jar files' manifests
132 recursively and appends each referenced jar file to the end of
133 the classpath, provided it is not on the classpath yet.
134
135
136 -extdirs <dir 1>;<dir 2>;...;<dir P>
137 This is a list of directories used to specify the location of
138 extension zip/jar files. Entries are separated by the platform
139 path separator.
140
141
142 -endorseddirs <dir 1>;<dir 2>;...;<dir P>
143 This is a list of directories used to specify the location of
144 endorsed zip/jar files. Entries are separated by the platform
145 path separator.
146
147
148 -sourcepath <dir 1>;<dir 2>;...;<dir P>
149 This is a list of directories used to specify the source files.
150 Entries are separated by the platform path separator. Each
151 directory can specify access rules for types between '[' and
152 ']'.
153
154
155 -d <dir 1>|none
156 This is used to specify in which directory the generated .class
157 files should be dumped. If it is omitted, no package directory
158 structure is created. If you want to generate no .class file at
159 all, use -d none.
160
161
162 -encoding <encoding name>
163 Specify default encoding for all source files. Custom encoding
164 can also be specified on a per file basis by suffixing each
165 input source file/folder name with [<encoding name>]. For exam‐
166 ple X.java[UTF-8] would specify the UTF-8 encoding for the com‐
167 pilation unit X.java located in the current user directory. If
168 multiple default source file encodings are specified, the last
169 one will be used.
170
171 For example: ... -encoding UTF-8 X.java[Cp1252] Y.java[UTF-16]
172 Z.java ....
173 All source files will be read using UTF-8 encoding (this
174 includes Z.java). X.java will be read using Cp1252 encoding and
175 Y.java will be read using UTF-16 encoding.
176
177 ... -encoding UTF-8 -encoding UTF-16 ....
178 All source files will be read using UTF-16 encoding. The -encod‐
179 ing option for UTF-8 is ignored.
180
181 ... -encoding Cp1252 /foo/bar/X.java[UTF-16] /foo/bar[UTF-8]
182 ....
183 All source files will be read using Cp1252 encoding. X.java is
184 the only file inside the /foo/bar directory to be read using the
185 encoding UTF-16. All other files in that directory will use
186 UTF-8 encoding.
187
188
189 Compliance Options
190
191
192 -target 1.1 to 1.9 (or 9, 9.0, etc.)
193 This specifies the .class file target setting. The possible
194 value are:
195 1.1 (major version: 45 minor: 3)
196 1.2 (major version: 46 minor: 0)
197 1.3 (major version: 47 minor: 0)
198 1.4 (major version: 48 minor: 0)
199 1.5, 5 or 5.0 (major version: 49 minor: 0)
200 1.6, 6 or 6.0 (major version: 50 minor: 0)
201 1.7, 7 or 7.0 (major version: 51 minor: 0)
202 1.8, 8 or 8.0 (major version: 52 minor: 0)
203 1.9, 9 or 9.0 (major version: 53 minor: 0)
204
205 Defaults are:
206 1.1 in -1.3 mode
207 1.2 in -1.4 mode
208 1.5 in -1.5 mode
209 1.6 in -1.6 mode
210 1.7 in -1.7 mode
211 1.8 in -1.8 mode
212 1.9 in -1.9 mode clcd1.1 can be used to generate the StackMap
213 attribute.
214
215
216 -1.3 Set compliance level to 1.3. Implicit -source 1.3 -target 1.1.
217
218
219 -1.4 Set compliance level to 1.4 (default). Implicit -source 1.3
220 -target 1.2.
221
222
223 -1.5 Set compliance level to 1.5. Implicit -source 1.5 -target 1.5.
224
225
226 -1.6 Set compliance level to 1.6. Implicit -source 1.6 -target 1.6.
227
228
229 -1.7 Set compliance level to 1.7. Implicit -source 1.7 -target 1.7.
230
231
232 -1.8 Set compliance level to 1.8. Implicit -source 1.8 -target 1.8.
233
234
235 -1.9 Set compliance level to 1.9. Implicit -source 1.9-target 1.9.
236
237
238 -source 1.1 to 1.9 (or 9, 9.0, etc.)
239 This is used to specify the source level expected by the com‐
240 piler. The possible value are:
241 1.3
242 1.4
243 1.5, 5 or 5.0
244 1.6, 6 or 6.0
245 1.7, 7 or 7.0
246 1.8, 8 or 8.0
247 1.9, 9 or 9.0
248
249 Defaults are:
250 1.3 in -1.3 mode
251 1.3 in -1.4 mode
252 1.5 in -1.5 mode
253 1.6 in -1.6 mode
254 1.7 in -1.7 mode
255 1.8 in -1.8 mode
256 1.9 in -1.9 mode
257 In 1.4, assert is treated as a keyword. In 1.5 and 1.6, enum and
258 assert are treated as keywords.
259
260
261 --release N
262 Compile for a specific VM version. Used for compiling against
263 older APIs.
264
265
266 Warning Options
267
268
269 -?:warn -help:warn
270 Display advanced warning options
271
272
273 -warn:...
274 Specify the set of enabled warnings.
275 -warn:none disable all warnings
276 -warn:<warning tokens separated by ,> enable exactly the
277 listed warnings
278 -warn:+<warning tokens separated by ,> enable additional warn‐
279 ings
280 -warn:-<warning tokens separated by ,> disable specific warn‐
281 ings
282
283 Examples:
284
285 warn:unusedLocal,deprecation
286 enables only the given two warning options and disables all the
287 other options
288
289 warn:-unusedLocal,deprecation,+fallthrough
290 disables unusedLocal and deprecation, enables fallthrough, and
291 leaves the other warning options untouched
292
293 The first column below shows the default state for an option. A
294 mark "+/-" indicates that an option covers several fine grained
295 warning variants, some of which are enabled by default, others
296 disabled. This means that specifying the given option with "+"
297 will enable more warnings than the default, and specifying "-"
298 disables some that are enabled by default.
299
300
301 +/- allDeadCode dead code including trivial if (DEBUG) check
302
303 +/- allDeprecation deprecation even inside deprecated code
304
305 - allJavadoc invalid or missing Javadoc
306
307 - allOver-ann all missing @Override annotations (superclass
308 and superinterfaces)
309
310 - all-static-method all method can be declared as static warn‐
311 ings
312
313 + assertIdentifier occurrence of assert used as identifier
314
315 - boxing autoboxing conversion
316
317 + charConcat when a char array is used in a string concatena‐
318 tion without being converted explicitly to a string
319
320 + compareIdentical comparing identical expressions
321
322 - conditionAssign possible accidental boolean assignment
323
324 + constructorName method with constructor name
325
326 + deadCode dead code excluding trivial if (DEBUG) check
327
328 - dep-ann missing @Deprecated annotation
329
330 +/- deprecation usage of deprecated type or member outside dep‐
331 recated code
332
333 + discouraged use of types matching a discouraged access rule
334
335 - emptyBlock undocumented empty block
336
337 + enumIdentifier occurrence of enum used as identifier
338
339 + enumSwitch incomplete enum switch
340
341 - enumSwitchPedantic report missing enum switch cases even in
342 the presence of a default case
343
344 - fallthrough possible fall-through case
345
346 - fieldHiding field hiding another variable
347
348 + finalBound type parameter with final bound
349
350 + finally finally block not completing normally
351
352 + forbidden use of types matching a forbidden access rule
353
354 - hashCode missing hashCode() method when overriding equals()
355
356 +/- hiding macro for fieldHiding, localHiding, maskedCatchBlock,
357 and typeHiding
358
359 - includeAssertNull raise null warnings for variables that got
360 tainted in an assert expression
361
362 - indirectStatic indirect reference to static member
363
364 - inheritNullAnnot consider null annotations as being inher‐
365 ited from an overridden method to any overriding methods
366
367 + intfAnnotation annotation type used as super interface
368
369 + intfNonInherited interface non-inherited method compatibil‐
370 ity
371
372 - intfRedundant find redundant superinterfaces
373
374 - invalidJavadoc macro to toggle the 'malformed Javadoc com‐
375 ments' option and all its sub-options listed below
376
377 - invalidJavadocTag report invalid Javadoc tags in Javadoc
378 comments.
379
380 - invalidJavadocTagDep report invalid deprecated references in
381 Javadoc tag arguments
382
383 - invalidJavadocTagNotVisible report invalid non-visible ref‐
384 erences in Javadoc tag arguments
385
386 - invalidJavadocVisibility(<visibility>) specify visibility
387 modifier ("public", "protected" or "private") for malformed
388 Javadoc tag warnings. Usage example: invalidJavadocVisibil‐
389 ity(public)
390
391 - javadoc invalid Javadoc
392
393 - localHiding local variable hiding another variable
394
395 + maskedCatchBlock hidden catch block
396
397 - missingJavadocTags macro to toggle the 'missing Javadoc
398 tags' option and all its sub-options listed below
399
400 - missingJavadocTagsMethod report missing Javadoc tags for a
401 method's type parameters
402
403 - missingJavadocTagsOverriding report missing Javadoc tags in
404 overriding methods
405
406 - missingJavadocTagsVisibility(<visibility>) specify visibil‐
407 ity modifier ("public", "protected" or "private") for missing
408 Javadoc tags warnings. Usage example: missingJavadocTagsVisibil‐
409 ity(public)
410
411 - missingJavadocComments macro to toggle the 'missing Javadoc
412 comments' option and all its sub-options listed below
413
414 - missingJavadocCommentsOverriding report missing Javadoc com‐
415 ments in overriding methods
416
417 - missingJavadocCommentsVisibility(<visibility>) specify visi‐
418 bility modifier ("public", "protected" or "private") for missing
419 Javadoc comments warnings. Usage example: missingJavadocCom‐
420 mentsVisibility(public)
421
422 - nls non-nls string literals (lacking of tags //$NON-NLS-<n>)
423
424 + noEffectAssign assignment with no effect
425
426 + nonnullNotRepeated nonnull parameter annotation from over‐
427 ridden method is not repeated in an overriding method. Is effec‐
428 tive only with the nullAnnot option enabled.
429
430 +/- null potential missing or redundant null check
431
432 - nullAnnot enable annotation based null analysis. If
433 desired, the annotation types to be interpreted by the compiler
434 can be specified by appending (nullable|nonnull|nonnullbyde‐
435 fault), where each annotation type is specified using its fully
436 qualified name. Usage example: nullAnnot(p.Nullable|p.Non‐
437 Null|p.NonNullByDefault)
438
439 Enabling this option enables all null-annotation related sub-
440 options. These can be individually controlled using options
441 listed below
442
443 - nullAnnotConflict report conflicts between null annotation
444 specified and nullness inferred. Is effective only with the nul‐
445 lAnnot option enabled.
446
447 - nullAnnotRedundant report redundant specification of null
448 annotation. Is effective only with the nullAnnot option enabled.
449
450 - nullDereference missing null check
451
452 - nullUncheckedConversion report unchecked conversion from
453 unannotated type to @NonNull type. Is effective only with the
454 nullAnnot option enabled.
455
456 - over-ann missing @Override annotation (superclass only)
457
458 - paramAssign assignment to a parameter
459
460 + pkgDefaultMethod attempt to override package-default method
461
462 + raw usage a of raw type (instead of a parameterized type)
463
464 +/- resource (potentially) unsafe usage of resource of type
465 Closeable
466
467 - semicolon unnecessary semicolon or empty statement
468
469 + serial missing serialVersionUID
470
471 - specialParamHiding constructor or setter parameter hiding
472 another field
473
474 +/- static-access macro for indirectStatic and staticReceiver
475
476 - static-method an instance method that could be as a static
477 method
478
479 + staticReceiver if a non static receiver is used to get a
480 static field or call a static method
481
482 - super overriding a method without making a super invocation
483
484 + suppress enable @SuppressWarnings
485
486 - switchDefault switch statement lacking a default case
487
488 - syncOverride missing synchronized in synchronized method
489 override
490
491 - syntacticAnalysis perform syntax-based null analysis for
492 fields
493
494 - syntheticAccess when performing synthetic access for inner‐
495 class
496
497 - tasks enable support for tasks tags in source code
498
499 + typeHiding type parameter hiding another type
500
501 + unavoidableGenericProblems report even unavoidable type
502 safety problems due to raw APIs
503
504 + unchecked unchecked type operation
505
506 - unnecessaryElse unnecessary else clause
507
508 - unqualifiedField unqualified reference to field
509
510 +/- unused macro for unusedImport, unusedLabel, unusedLocal,
511 unusedPrivate, unusedThrown, unusedTypeArgs, and unusedTypePa‐
512 rameter
513
514 - unusedAllocation allocating an object that is not used
515
516 - unusedArgument unused method parameter (deprecated option;
517 use unusedParam instead)
518
519 + unusedImport unused import reference
520
521 + unusedLabel unused label
522
523 + unusedLocal unused local variable
524
525 + unusedParam unused method parameter
526
527 + unusedParamImplementing unused parameter for implementing
528 method
529
530 + unusedParamIncludeDoc unused parameter documented in a
531 Javadoc comment tag
532
533 + unusedParamOverriding unused parameter for overriding method
534
535 + unusedPrivate unused private member declaration
536
537 - unusedThrown unused declared thrown exception
538
539 - unusedThrownIncludeDocComment unused declared thrown excep‐
540 tion documented in a Javadoc comment tag
541
542 - unusedThrownExemptExceptionThrowable report unused declared
543 thrown exception but exempt Exception and Throwable
544
545 - unusedThrownWhenOverriding unused declared thrown exception
546 in overriding method
547
548 + unusedTypeArgs unused type arguments for method and con‐
549 structor
550
551 + unusedTypeParameter unused type parameter
552
553 - uselessTypeCheck unnecessary cast/instanceof operation
554
555 + varargsCast varargs argument need explicit cast
556
557 +/- warningToken unhandled or unused warning token in @Suppress‐
558 Warnings
559
560
561 -nowarn
562 No warning (equivalent to -warn:none)
563
564 -err:...
565 Specify the set of enabled warnings that are converted to
566 errors.
567 E.g.
568 -err:unusedLocal,deprecation
569 unusedLocal and deprecation warnings will be converted to
570 errors. All other warnings are still reported as warnings.
571
572 -err:<warning tokens separated by ,> convert exactly the
573 listed warnings to errors
574 -err:+<warning tokens separated by ,> convert additional warn‐
575 ings to errors
576 -err:-<warning tokens separated by ,> remove specific warnings
577 from being converted to errors
578
579
580 -deprecation
581 Equivalent to -warn:+deprecation.
582
583 -properties <file>
584 Set warnings/errors option based on the properties file con‐
585 tents. This option can be used with -nowarn, -err:.. or -warn:..
586 options, but the last one on the command line sets the options
587 to be used.
588
589 The properties file contents can be generated by setting project
590 specific settings on an existing java project and using the file
591 in .settings/org.eclipse.jdt.core.prefs file as a properties
592 file, or a simple text file that is defined entry/value pairs
593 using the constants defined in the org.eclipse.jdt.core.JavaCore
594 class. Of those constants declared in this class, all options
595 starting with "org.eclipse.jdt.core.compiler." are interpreted
596 by the batch compiler.
597
598 ...
599 org.eclipse.jdt.core.compiler.problem.annotationSuperInter‐
600 face=warning
601 org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
602 org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
603 ...
604
605 To ensure that a property file has the same effect when used in
606 the IDE and for the batch compiler, use of the -properties
607 option will change the defaults for a few options:
608
609 -g default changed to all enabled
610 -preserveAllLocals default changed to enabled
611 -enableJavadoc default changed to enabled
612 error/warning forbidden default changed to error
613
614
615 Debug Options
616
617
618 -g[:none|:lines,vars,source]
619 Set the debug attributes level
620 -g All debug info (equivalent to
621 -g:lines,vars,source)
622 -g:none No debug info
623 -g:[lines,vars,source] Selective debug info
624 Not specifying this option is equivalent to setting
625 -g:lines,source.
626
627
628 -preserveAllLocals
629 Explicitly request the compiler to preserve all local variables
630 (for debug purpose). If omitted, the compiler will remove unused
631 locals.
632
633 -parameters
634 Explicitly request the compiler to preserve information about
635 the formal parameters of a method (such as their names) to be
636 accessed from reflection libraries, annotation processing, code
637 weaving, and in the debugger. This option is supported from tar‐
638 get level 1.8 and later. Annotation processing options (require
639 a 1.6 VM or above and are used only if the compliance is 1.6)
640
641
642 Annotation Processing Options
643
644
645 -Akey[=value]
646 Annotation processors options that are passed to annotation pro‐
647 cessors. key is made of identifiers separated by dots
648
649
650 -proc:[only|none]
651 If -proc:only is specified, the annotation processors will run
652 but no compilation will be performed. If -proc:none is speci‐
653 fied, annotation processors will not be discovered or run; com‐
654 pilation will proceed as if no annotation processors were found.
655 By default the compiler must search the classpath for annotation
656 processors, so specifying -proc:none may speed compilation if
657 annotation processing is not required.
658
659 -processor <class1[,class2,...]>
660 Qualified class names of annotation processors to run. If speci‐
661 fied, the normal processor discovery process will be skipped.
662
663 -processorpath <dir 1>;<dir 2>;...;<dir P>
664 A list of directories or jar files which will be searched for
665 annotation processors. Entries are separated by the platform
666 path separator. If not specified, the classpath will be searched
667 instead.
668
669 -s <dir>
670 The directory where generated source files will be created.
671
672 -XprintProcessorInfo
673 Print information about which annotations and which elements a
674 processor is asked to process
675
676 -XprintRounds
677 Print information about annotation processing rounds
678
679 -classNames <class1[,class2,...]>
680 Qualified names of binary types that need to be processed
681
682
683 Ignored Options (for compatibility with javac options)
684
685
686 -J<option>
687 Pass option to the virtual machine
688
689 -X<option>
690 Specify non-standard option. -Xemacs is not ignored.
691
692 -X Print non-standard options and exit
693
694 -O Optimize for execution time
695
696
697 Advanced Options
698
699
700 @<file>
701 Read command-line arguments from file
702
703 -maxProblems <n>
704 Max number of problems per compilation unit (100 by default)
705
706 -log <filename>
707 Specify a log file in which all output from the compiler will be
708 dumped. This is really useful if you want to debug the batch
709 compiler or get a file which contains all errors and warnings
710 from a batch build. If the extension is .xml, the generated log
711 will be an xml file.
712
713 -genericsignature
714 Explicitly request the compiler to preserve information about
715 generic signature of lambda expressions.
716
717 -Xemacs
718 Use emacs style to present errors and warnings locations into
719 the console and regular text logs. XML logs are unaffected by
720 this option. With this option active, the message:
721 2. WARNING in /workspace/X.java
722 (at line 8)...
723 is presented as:
724 /workspace/X.java:8: warning: The method...
725
726
727 -proceedOnError[:Fatal]
728 Keep compiling in spite of errors, dumping class files with
729 problem methods or problem types. This is recommended only if
730 you want to be able to run your application even if you have
731 remaining errors. With ":Fatal", all optional errors are
732 treated as fatal and this leads to code that will abort if an
733 error is reached at runtime. Without ":Fatal", optional errors
734 don't prevent the proper code generation and the produced .class
735 files can be run without a problem.
736
737 -verbose
738 Print accessed/processed compilation units in the console or the
739 log file if specified.
740
741 -referenceInfo
742 Compute reference info. This is useful only if connected to the
743 builder. The reference infos are useless otherwise.
744
745 -progress
746 Show progress (only in -log mode).
747
748 -time Display speed information.
749
750 -noExit
751 Do not call System.exit(n) at end of compilation (n=0 if no
752 error).
753
754 -repeat <n>
755 Repeat compilation process <n> times (perf analysis).
756
757 -inlineJSR
758 Inline JSR bytecode (implicit if target >= 1.5).
759
760 -enableJavadoc
761 Consider references inside Javadoc. The Javadoc options are
762 effective only when this option is enabled.
763
764 -missingNullDefault
765 When annotation based null analysis is enabled (using "nullAn‐
766 not", above), this option will raise a warning whenever there is
767 no default annotation on a package or a type.
768
769 -annotationpath
770 When annotation based null analysis is enabled (using "nullAn‐
771 not", above), this option defines locations where to find exter‐
772 nal annotations to support annotation-based null analysis. The
773 value of this options is a list of directories or zip files.
774 Entries are separated by the platform path separator. The spe‐
775 cial name CLASSPATH will cause lookup of external annotations
776 from the classpath and sourcepath.
777
778
779 Helping Options
780
781
782 -? -help
783 Display the help message.
784
785 -v -version
786 Display the build number of the compiler. This is very useful to
787 report a bug.
788
789 -showversion
790 Display the build number of the compiler and continue. This is
791 very useful to report a bug.
792
793
795 <http://help.eclipse.org/topic/org.eclipse.jdt.doc.user/tasks/task-
796 using_batch_compiler.htm>
797
799 To report bugs, use <https://bugs.eclipse.org/bugs/enter_bug.cgi?prod‐
800 uct=JDT&component=Core>
801
803 For details on Eclipse committers, see <http://www.eclipse.org/commit‐
804 ters/>
805
806
807
808 ecj(13 March 2017)