Package javax.tools.JavaCompiler

Examples of javax.tools.JavaCompiler.CompilationTask


    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
    DiagnosticCollector<JavaFileObject> diagnosticCollector =
        new DiagnosticCollector<JavaFileObject>();
    InMemoryJavaFileManager fileManager = new InMemoryJavaFileManager(
        compiler.getStandardFileManager(diagnosticCollector, Locale.getDefault(), UTF_8));
    CompilationTask task = compiler.getTask(
        null, // explicitly use the default because old versions of javac log some output on stderr
        fileManager,
        diagnosticCollector,
        ImmutableSet.<String>of(),
        ImmutableSet.<String>of(),
        sources);
    task.setProcessors(processors);
    boolean successful = task.call();
    return new Result(successful, sortDiagnosticsByKind(diagnosticCollector.getDiagnostics()),
        fileManager.getOutputFiles());
  }
View Full Code Here


        // which breaks later processing.
        // So for now, don't perform annotation processing
        List<String> options = Arrays.asList("-proc:none");

        Iterable<? extends JavaFileObject> files = fileManager.getJavaFileObjectsFromFiles(sourceFiles);
        CompilationTask task = javac.getTask(null, fileManager, errorListener, options, null, files);
        return (JavacTask)task;
    }
View Full Code Here

    @Override
    protected void generateJavaClass(JavaSource source) {
        // 编译代码
        DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>(); // 编译器编译中的诊断信息
        Iterable<? extends JavaFileObject> files = fileManager.getJavaFileObjects(source.getJavaFile()); // 要编译的所有Java文件
        CompilationTask task = jc.getTask(null, fileManager, diagnostics, options, null, files);

        Boolean result;
        if (isJdk6) {
            // jdk6 的 compiler 是线程不安全的,需要手动同步
            synchronized (this) {
                result = task.call();
            }
        } else {
            // jdk7+ 的 compiler 是线程安全的
            result = task.call();
        }

        // 返回编译结果
        if ((result == null) || !result.booleanValue()) {
            String[] sourceCodeLines = source.getSourceCode().split("\r?\n", -1);
View Full Code Here

            String[] convertedCompilationUnits = convertCompilationUnitToFilePaths( compilationUnits );
            final Iterable<? extends JavaFileObject> compilationUnitsJavaObjects =
                    fileManager.getJavaFileObjects( convertedCompilationUnits );

            //Compile with provide annotation processor
            final CompilationTask task = compiler.getTask( null,
                                                           fileManager,
                                                           diagnosticListener,
                                                           null,
                                                           null,
                                                           compilationUnitsJavaObjects );
            task.setProcessors( Arrays.asList( annotationProcessor ) );
            task.call();
            fileManager.close();

        } catch ( IOException ioe ) {
            fail( ioe.getMessage() );
        }
View Full Code Here

      processor.setMustResolveAllMappings(true);
    }
    processor.setRootOverride(argList);

    // Create the compilation task
    CompilationTask task =
        compiler.getTask(null, fileManager, null, null, null, Arrays
            .asList(new FakeJavaFileObject()));
    task.setProcessors(Arrays.asList(processor));
    if (!task.call()) {
      return false;
    }
    // Save data only on successful compilation
    fileManager.close();
    return true;
View Full Code Here

        options.add(destDir.getPath());
        if(addToClassPath != null){
            options.add("-cp");
            options.add(addToClassPath.getPath());
        }
        CompilationTask task = compiler.getTask(null, null, null, options, null, units);
        Boolean result = task.call();
        assertTrue(result != null && result.booleanValue());

        File compiledModuleFile = new File(destDir, javaModulePath+"/"+javaClassName+".class");
        assertTrue(compiledModuleFile.isFile());
       
View Full Code Here

        File moduleFile = new File("test-jvm/foo/foo", "$module_.java");
        Iterable<? extends JavaFileObject> units = fileManager.getJavaFileObjects(moduleFile);
        File destDir = new File("build/mainTest");
        FileUtil.delete(destDir);
        destDir.mkdirs();
        CompilationTask task = compiler.getTask(null, null, null, Arrays.asList("-d", destDir.getPath(), "-cp", "build/classes"), null, units);
        Boolean result = task.call();
        assertTrue(result != null && result.booleanValue());

        File compiledModuleFile = new File(destDir, "foo/foo/$module_.class");
        assertTrue(compiledModuleFile.isFile());
       
View Full Code Here

  public void testJavaCompiler(Source source) throws IOException {
    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
    File tempDir = getTempDir();
    tempDir.mkdirs();
    List<String> options = Arrays.asList("-proc:none", "-d", tempDir.getAbsolutePath());
    CompilationTask task = compiler.getTask(null, null, null, options, null, Collections.singleton(new ContentBasedJavaFileObject(source.getName(), source.getRawInput())));
    assertTrue(task.call());
  }
View Full Code Here

TOP

Related Classes of javax.tools.JavaCompiler.CompilationTask

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.