当前位置: 首页>>代码示例>>Java>>正文


Java JavacTool.getTask方法代码示例

本文整理汇总了Java中com.sun.tools.javac.api.JavacTool.getTask方法的典型用法代码示例。如果您正苦于以下问题:Java JavacTool.getTask方法的具体用法?Java JavacTool.getTask怎么用?Java JavacTool.getTask使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.sun.tools.javac.api.JavacTool的用法示例。


在下文中一共展示了JavacTool.getTask方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testNoAnnotationProcessing

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
static void testNoAnnotationProcessing(JavacFileManager fm, List<JavaFileObject> files) throws Throwable {
    Context context = new Context();

    String[] args = { "-d", "." };

    JavacTool tool = JavacTool.create();
    JavacTask task = tool.getTask(null, fm, null, List.from(args), null, files, context);
    // no need in this simple case to call task.prepareCompiler(false)

    JavaCompiler compiler = JavaCompiler.instance(context);
    compiler.compile(files);
    try {
        compiler.compile(files);
        throw new Error("Error: AssertionError not thrown after second call of compile");
    } catch (AssertionError e) {
        System.err.println("Exception from compiler (expected): " + e);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:19,代码来源:T6358168.java

示例2: PubApiExtractor

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
/**
     * Setup a compilation context, used for reading public apis of classes on the classpath
     * as well as annotation processors.
     */
    public PubApiExtractor(Options options) {
        JavacTool compiler = com.sun.tools.javac.api.JavacTool.create();
        fileManager = new SmartFileManager(compiler.getStandardFileManager(null, null, null));
        context = new com.sun.tools.javac.util.Context();
        String[] args = options.prepJavacArgs();
        task = compiler.getTask(new PrintWriter(System.err),
                                fileManager,
                                null,
                                Arrays.asList(args),
                                null,
                                null,
                                context);
        // Trigger a creation of the JavaCompiler, necessary to get a sourceCompleter for ClassFinder.
        // The sourceCompleter is used for build situations where a classpath class references other classes
        // that happens to be on the sourcepath.
        JavaCompiler.instance(context);

//        context.put(JavaFileManager.class, fileManager);
    }
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:24,代码来源:PubApiExtractor.java

示例3: testAnnotationProcessing

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
static void testAnnotationProcessing(JavacFileManager fm, List<JavaFileObject> files) throws Throwable {
    Context context = new Context();

    String[] args = {
            "-XprintRounds",
            "-processorpath", testClasses,
            "-processor", self,
            "-d", "."
    };

    JavacTool tool = JavacTool.create();
    JavacTask task = tool.getTask(null, fm, null, List.from(args), null, files, context);
    // no need in this simple case to call task.prepareCompiler(false)

    JavaCompiler compiler = JavaCompiler.instance(context);
    compiler.compile(files);
    try {
        compiler.compile(files);
        throw new Error("Error: AssertionError not thrown after second call of compile");
    } catch (AssertionError e) {
        System.err.println("Exception from compiler (expected): " + e);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:24,代码来源:T6358168.java

示例4: main

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
public static void main(String... args) throws IOException {
    String testSrc = System.getProperty("test.src", ".");
    String testClasses = System.getProperty("test.classes", ".");
    JavacTool tool = JavacTool.create();
    MyDiagListener dl = new MyDiagListener();
    try (StandardJavaFileManager fm = tool.getStandardFileManager(dl, null, null)) {
        fm.setLocation(StandardLocation.CLASS_OUTPUT, Arrays.asList(new File(testClasses)));
        Iterable<? extends JavaFileObject> files =
            fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrc, T6410706.class.getName()+".java")));
        JavacTask task = tool.getTask(null, fm, dl, null, null, files);
        task.parse();
        task.analyze();
        task.generate();

        // expect 2 notes:
        // Note: T6410706.java uses or overrides a deprecated API.
        // Note: Recompile with -Xlint:deprecation for details.

        if (dl.notes != 2)
            throw new AssertionError(dl.notes + " notes given");
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:23,代码来源:T6410706.java

示例5: run

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
void run() throws IOException {
    JavacTool tool = JavacTool.create();
    JavaSource source = new JavaSource("class Test {" +
                                       "    I i = STOP -> {};" +
                                       "    interface I {" +
                                       "        public void test(int i) {}" +
                                       "    }" +
                                       "}");
    Context context = new Context();
    CrashingAttr.preRegister(context);
    List<JavaSource> inputs = Arrays.asList(source);
    JavacTaskImpl task =
            (JavacTaskImpl) tool.getTask(null, null, null, null, null, inputs, context);
    try {
        task.analyze(null);
        throw new AssertionError("Expected exception not seen.");
    } catch (StopException ex) {
        //ok
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:21,代码来源:AvoidInfiniteReattribution.java

示例6: main

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
public static void main(String[] args) throws Exception {
    PrintWriter out = new PrintWriter(System.out, true);
    JavacTool tool = JavacTool.create();
    try (StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null)) {
        File testSrc = new File(System.getProperty("test.src"));
        Iterable<? extends JavaFileObject> f =
            fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrc, "ArrayCreationTree.java")));
        JavacTask task = tool.getTask(out, fm, null, null, null, f);
        Iterable<? extends CompilationUnitTree> trees = task.parse();
        out.flush();

        Scanner s = new Scanner();
        for (CompilationUnitTree t: trees)
            s.scan(t, null);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:17,代码来源:ArrayCreationTree.java

示例7: run

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
void run() throws Exception {
    File testSrc = new File(System.getProperty("test.src"));

    JavacTool tool = JavacTool.create();
    try (StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null)) {

        File f = new File(testSrc, T6993305.class.getSimpleName() + ".java");
        Iterable<? extends JavaFileObject> fos = fm.getJavaFileObjects(f);
        JavacTask task = tool.getTask(null, fm, null, null, null, fos);
        Iterable<? extends CompilationUnitTree> cus = task.parse();

        TestScanner s = new TestScanner();
        s.scan(cus, task);

        if (errors > 0)
            throw new Exception(errors + " errors occurred");
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:19,代码来源:T6993305.java

示例8: main

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
public static void main(String[] args) throws Exception {
    PrintWriter out = new PrintWriter(System.out, true);
    JavacTool tool = JavacTool.create();
    try (StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null)) {
        File testSrc = new File(System.getProperty("test.src"));
        Iterable<? extends JavaFileObject> f =
            fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrc, "T6345974.java")));
        JavacTask task = tool.getTask(out, fm, null, null, null, f);
        Iterable<? extends CompilationUnitTree> trees = task.parse();
        out.flush();

        Scanner s = new Scanner();
        for (CompilationUnitTree t: trees)
            s.scan(t, null);
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:17,代码来源:T6345974.java

示例9: compileFile

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
@SafeVarargs
private final void compileFile( JavacTool javacTool, JavaFileManager fileManager, String file, Pair<IssueMsg, Integer>... msgs ) throws IOException, URISyntaxException
{
  DiagnosticCollector<JavaFileObject> dc = new DiagnosticCollector<>();
  String content = StreamUtil.getContent( StreamUtil.getInputStreamReader( getClass().getResourceAsStream( file ) ) );
  SourceFile srcFile = new SourceFile( file, content );
  StringWriter errors = new StringWriter();
  JavacTaskImpl javacTask = (JavacTaskImpl)javacTool.getTask( errors, fileManager, dc, Collections.singletonList( "-Xplugin:Manifold" ), null, Collections.singletonList( srcFile ) );
  javacTask.call();
  outer:
  for( Pair<IssueMsg, Integer> msg : msgs )
  {
    for( Diagnostic<? extends JavaFileObject> d : dc.getDiagnostics() )
    {
      if( d.getLineNumber() == msg.getSecond() )
      {
        if( msg.getFirst().isMessageSimilar( d.getMessage( Locale.getDefault() ) ) )
        {
          continue outer;
        }
      }
    }
    fail( "Did not find issue: " + msg.getFirst().get() + " at line: " + msg.getSecond() );
  }
}
 
开发者ID:manifold-systems,项目名称:manifold,代码行数:26,代码来源:CompilationTest.java

示例10: main

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
public static void main(String[] args) throws IOException {
    JavacTool tool = JavacTool.create();

    try (StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null)) {
        Iterable<? extends JavaFileObject> files =
            fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrcDir, self + ".java")));

        Iterable<String> options = Arrays.asList(
            "--add-exports", "jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
            "--processor-path", testClassDir,
            "-processor", self,
            "-s", ".",
            "-d", ".");
        JavacTask task = tool.getTask(out, fm, null, options, null, files);

        VerifyingTaskListener vtl = new VerifyingTaskListener(new File(testSrcDir, self + ".out"));
        task.setTaskListener(vtl);

        if (!task.call())
            throw new AssertionError("compilation failed");

        if (vtl.iter.hasNext() || vtl.errors)
            throw new AssertionError("comparison against golden file failed.");
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:26,代码来源:T6403466.java

示例11: main

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
public static void main(String... args) throws IOException {
    String testSrc = System.getProperty("test.src", ".");
    String testClasses = System.getProperty("test.classes", ".");
    JavacTool tool = JavacTool.create();
    MyDiagListener dl = new MyDiagListener();
    StandardJavaFileManager fm = tool.getStandardFileManager(dl, null, null);
    fm.setLocation(StandardLocation.CLASS_OUTPUT, Arrays.asList(new File(testClasses)));
    Iterable<? extends JavaFileObject> files =
        fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrc, T6410706.class.getName()+".java")));
    JavacTask task = tool.getTask(null, fm, dl, null, null, files);
    task.parse();
    task.analyze();
    task.generate();

    // expect 2 notes:
    // Note: T6410706.java uses or overrides a deprecated API.
    // Note: Recompile with -Xlint:deprecation for details.

    if (dl.notes != 2)
        throw new AssertionError(dl.notes + " notes given");
}
 
开发者ID:ojdkbuild,项目名称:lookaside_java-1.8.0-openjdk,代码行数:22,代码来源:T6410706.java

示例12: main

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
public static void main(String[] args) throws Exception {
    PrintWriter out = new PrintWriter(System.out, true);
    JavacTool tool = JavacTool.create();
    try (StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null)) {
        File testSrc = new File(System.getProperty("test.src"));
        Iterable<? extends JavaFileObject> f =
            fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrc, "ArrayPositionConsistency.java")));
        JavacTask task = tool.getTask(out, fm, null, null, null, f);
        Iterable<? extends CompilationUnitTree> trees = task.parse();
        out.flush();

        Scanner s = new Scanner();
        for (CompilationUnitTree t: trees)
            s.scan(t, null);
    }
}
 
开发者ID:campolake,项目名称:openjdk9,代码行数:17,代码来源:ArrayPositionConsistency.java

示例13: testTaskAPI

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
void testTaskAPI(boolean expectWarnings, Iterable<? extends File> pcp) throws Exception {
    System.err.println("test task API: " + pcp);

    JavacTool tool = JavacTool.create();
    StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null);

    if (pcp != null)
        fm.setLocation(StandardLocation.PLATFORM_CLASS_PATH, pcp);

    Iterable<? extends JavaFileObject> files = fm.getJavaFileObjects(testFile);

    StringWriter sw = new StringWriter();
    PrintWriter pw = new PrintWriter(sw);
    JavacTask task = tool.getTask(pw, fm, null, null, null, files);
    boolean ok = task.call();
    String out = showOutput(sw.toString());

    checkCompilationOK(ok);
    checkOutput(out, expectWarnings);
}
 
开发者ID:ojdkbuild,项目名称:lookaside_java-1.8.0-openjdk,代码行数:21,代码来源:T6430241.java

示例14: main

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
public static void main(String[] args) throws Exception {
    PrintWriter out = new PrintWriter(System.out, true);
    JavacTool tool = JavacTool.create();
    StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null);
    File testSrc = new File(System.getProperty("test.src"));
    Iterable<? extends JavaFileObject> f =
        fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(testSrc, "ArrayCreationTree.java")));
    JavacTask task = tool.getTask(out, fm, null, null, null, f);
    Iterable<? extends CompilationUnitTree> trees = task.parse();
    out.flush();

    Scanner s = new Scanner();
    for (CompilationUnitTree t: trees)
        s.scan(t, null);

}
 
开发者ID:ojdkbuild,项目名称:lookaside_java-1.8.0-openjdk,代码行数:17,代码来源:ArrayCreationTree.java

示例15: run

import com.sun.tools.javac.api.JavacTool; //导入方法依赖的package包/类
void run() throws Exception {
    File testSrc = new File(System.getProperty("test.src"));

    JavacTool tool = JavacTool.create();
    StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null);

    File f = new File(testSrc, T6993305.class.getSimpleName() + ".java");
    Iterable<? extends JavaFileObject> fos = fm.getJavaFileObjects(f);
    JavacTask task = tool.getTask(null, fm, null, null, null, fos);
    Iterable<? extends CompilationUnitTree> cus = task.parse();

    TestScanner s = new TestScanner();
    s.scan(cus, task);

    if (errors > 0)
        throw new Exception(errors + " errors occurred");
}
 
开发者ID:ojdkbuild,项目名称:lookaside_java-1.8.0-openjdk,代码行数:18,代码来源:T6993305.java


注:本文中的com.sun.tools.javac.api.JavacTool.getTask方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。