9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 /** 27 * Defines the implementation of the 28 * {@linkplain javax.tools.ToolProvider#getSystemJavaCompiler system Java compiler} 29 * and its command line equivalent, <em>{@index javac javac tool}</em>, 30 * as well as <em>{@index javah javah tool}</em>. 31 * 32 * <h2 style="font-family:'DejaVu Sans Mono', monospace; font-style:italic">javac</h2> 33 * 34 * <p> 35 * This module provides the equivalent of command-line access to <em>javac</em> 36 * via the {@link java.util.spi.ToolProvider ToolProvider} and 37 * {@link javax.tools.Tool} service provider interfaces (SPIs), 38 * and more flexible access via the {@link javax.tools.JavaCompiler JavaCompiler} 39 * SPI.</p> 40 * 41 * <p> Instances of the tools can be obtained by calling 42 * {@link java.util.spi.ToolProvider#findFirst ToolProvider.findFirst} 43 * or the {@linkplain java.util.ServiceLoader service loader} with the name 44 * {@code "javac"}. 45 * 46 * <p> 47 * In addition, instances of {@link javax.tools.JavaCompiler.CompilationTask} 48 * obtained from {@linkplain javax.tools.JavaCompiler JavaCompiler} can be 49 * downcast to {@link com.sun.source.util.JavacTask JavacTask} for access to 50 * lower level aspects of <em>javac</em>, such as the 51 * {@link com.sun.source.tree Abstract Syntax Tree} (AST).</p> 52 * 53 * <p>This module uses the {@link java.nio.file.spi.FileSystemProvider 54 * FileSystemProvider} API to locate file system providers. In particular, 55 * this means that a jar file system provider, such as that in the 56 * {@code jdk.zipfs} module, must be available if the compiler is to be able 57 * to read JAR files. 58 * 59 * <h2 style="font-family:'DejaVu Sans Mono', monospace; font-style:italic">javah</h2> 60 * 61 * <p> 62 * <em>javah</em> only exists as a command line tool, and does not provide any 63 * direct API. As of JDK 9, it has been deprecated. 64 * Use the {@code -h} option in <em>javac</em> instead.</p> 65 * 66 * <dl style="font-family:'DejaVu Sans', Arial, Helvetica, sans serif"> 67 * <dt class="simpleTagLabel">Tool Guides: 68 * <dd>{@extLink javac_tool_reference javac}, 69 * {@extLink javah_tool_reference javah} 70 * </dl> 71 * 72 * @provides java.util.spi.ToolProvider 73 * @provides com.sun.tools.javac.platform.PlatformProvider 74 * @provides javax.tools.JavaCompiler 75 * @provides javax.tools.Tool 76 * 77 * @uses javax.annotation.processing.Processor 78 * @uses com.sun.source.util.Plugin 79 * @uses com.sun.tools.javac.platform.PlatformProvider 80 * 81 * @moduleGraph 82 * @since 9 83 */ 84 module jdk.compiler { 85 requires transitive java.compiler; 86 87 exports com.sun.source.doctree; 88 exports com.sun.source.tree; 89 exports com.sun.source.util; | 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 /** 27 * Defines the implementation of the 28 * {@linkplain javax.tools.ToolProvider#getSystemJavaCompiler system Java compiler} 29 * and its command line equivalent, <em>{@index javac javac tool}</em>. 30 * 31 * <h2 style="font-family:'DejaVu Sans Mono', monospace; font-style:italic">javac</h2> 32 * 33 * <p> 34 * This module provides the equivalent of command-line access to <em>javac</em> 35 * via the {@link java.util.spi.ToolProvider ToolProvider} and 36 * {@link javax.tools.Tool} service provider interfaces (SPIs), 37 * and more flexible access via the {@link javax.tools.JavaCompiler JavaCompiler} 38 * SPI.</p> 39 * 40 * <p> Instances of the tools can be obtained by calling 41 * {@link java.util.spi.ToolProvider#findFirst ToolProvider.findFirst} 42 * or the {@linkplain java.util.ServiceLoader service loader} with the name 43 * {@code "javac"}. 44 * 45 * <p> 46 * In addition, instances of {@link javax.tools.JavaCompiler.CompilationTask} 47 * obtained from {@linkplain javax.tools.JavaCompiler JavaCompiler} can be 48 * downcast to {@link com.sun.source.util.JavacTask JavacTask} for access to 49 * lower level aspects of <em>javac</em>, such as the 50 * {@link com.sun.source.tree Abstract Syntax Tree} (AST).</p> 51 * 52 * <p>This module uses the {@link java.nio.file.spi.FileSystemProvider 53 * FileSystemProvider} API to locate file system providers. In particular, 54 * this means that a jar file system provider, such as that in the 55 * {@code jdk.zipfs} module, must be available if the compiler is to be able 56 * to read JAR files. 57 * 58 * <dl style="font-family:'DejaVu Sans', Arial, Helvetica, sans serif"> 59 * <dt class="simpleTagLabel">Tool Guides: 60 * <dd>{@extLink javac_tool_reference javac} 61 * </dl> 62 * 63 * @provides java.util.spi.ToolProvider 64 * @provides com.sun.tools.javac.platform.PlatformProvider 65 * @provides javax.tools.JavaCompiler 66 * @provides javax.tools.Tool 67 * 68 * @uses javax.annotation.processing.Processor 69 * @uses com.sun.source.util.Plugin 70 * @uses com.sun.tools.javac.platform.PlatformProvider 71 * 72 * @moduleGraph 73 * @since 9 74 */ 75 module jdk.compiler { 76 requires transitive java.compiler; 77 78 exports com.sun.source.doctree; 79 exports com.sun.source.tree; 80 exports com.sun.source.util; |