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


Java JavacFileManager.setLocation方法代码示例

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


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

示例1: run

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
void run() throws Exception {
    RelativeFile TEST_ENTRY_NAME = new RelativeFile("java/lang/String.class");

    File testJar = createJar("test.jar", "java.lang.*");

    try (JarFile j = new JarFile(testJar)) {
        JarEntry je = j.getJarEntry(TEST_ENTRY_NAME.getPath());
        long jarEntryTime = je.getTime();

        Context context = new Context();
        JavacFileManager fm = new JavacFileManager(context, false, null);
        fm.setLocation(StandardLocation.CLASS_PATH, Collections.singletonList(testJar));
        FileObject fo =
            fm.getFileForInput(StandardLocation.CLASS_PATH, "", TEST_ENTRY_NAME.getPath());
        long jfoTime = fo.getLastModified();

        check(je, jarEntryTime, fo, jfoTime);

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

示例2: getFileManager

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
JavaFileManager getFileManager(String classpathProperty,
                               boolean symFileKind,
                               boolean zipFileIndexKind)
        throws IOException {
    Context ctx = new Context();
    Options options = Options.instance(ctx);
    options.put("useOptimizedZip",
            Boolean.toString(zipFileIndexKind == USE_ZIP_FILE_INDEX));

    if (symFileKind == IGNORE_SYMBOL_FILE)
        options.put("ignore.symbol.file", "true");
    JavacFileManager fm = new JavacFileManager(ctx, false, null);
    List<File> path = getPath(System.getProperty(classpathProperty));
    fm.setLocation(CLASS_PATH, path);
    return fm;
}
 
开发者ID:ojdkbuild,项目名称:lookaside_java-1.8.0-openjdk,代码行数:17,代码来源:TestInferBinaryName.java

示例3: JavaParser

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
public JavaParser() {
    context = new Context();
    diagnostics = new DiagnosticCollector<>();
    context.put(DiagnosticListener.class, diagnostics);
    Options.instance(context).put("allowStringFolding", "false");
    JavacFileManager fileManager = new JavacFileManager(context, true, UTF_8);
    try {
        fileManager.setLocation(StandardLocation.PLATFORM_CLASS_PATH, ImmutableList.<File>of());
    } catch (IOException e) {
        // impossible
        canParse = false;
    }
    parserFactory = ParserFactory.instance(context);
}
 
开发者ID:tranleduy2000,项目名称:javaide,代码行数:15,代码来源:JavaParser.java

示例4: test1

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
public void test1() {
    Context context = new Context();
    DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
    context.put(DiagnosticListener.class, diagnostics);
    Options.instance(context).put("allowStringFolding", "false");
    JCTree.JCCompilationUnit unit;
    JavacFileManager fileManager = new JavacFileManager(context, true, UTF_8);
    try {
        fileManager.setLocation(StandardLocation.PLATFORM_CLASS_PATH, ImmutableList.<File>of());
    } catch (IOException e) {
        // impossible
        throw new IOError(e);
    }
    SimpleJavaFileObject source =
            new SimpleJavaFileObject(URI.create("source"), JavaFileObject.Kind.SOURCE) {
                @Override
                public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
                    return src;
                }
            };
    Log.instance(context).useSource(source);
    ParserFactory parserFactory = ParserFactory.instance(context);
    Parser parser =
            parserFactory.newParser(
                    src,
        /*keepDocComments=*/ true,
        /*keepEndPos=*/ true,
        /*keepLineMap=*/ true);
    unit = parser.parseCompilationUnit();
    unit.sourcefile = source;
}
 
开发者ID:tranleduy2000,项目名称:javaide,代码行数:32,代码来源:TestJavacParser.java

示例5: test4

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
public void test4() {
    Context context = new Context();
    DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
    context.put(DiagnosticListener.class, diagnostics);
    Options.instance(context).put("allowStringFolding", "false");
    JCTree.JCCompilationUnit unit;
    JavacFileManager fileManager = new JavacFileManager(context, true, UTF_8);
    try {
        fileManager.setLocation(StandardLocation.PLATFORM_CLASS_PATH, ImmutableList.<File>of());
    } catch (IOException e) {
        // impossible
        throw new IOError(e);
    }
    SimpleJavaFileObject source =
            new SimpleJavaFileObject(URI.create("source"), JavaFileObject.Kind.SOURCE) {
                @Override
                public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
                    return src;
                }
            };
    Log.instance(context).useSource(source);
    ParserFactory parserFactory = ParserFactory.instance(context);
    Parser parser =
            parserFactory.newParser(
                    src,
        /*keepDocComments=*/ true,
        /*keepEndPos=*/ true,
        /*keepLineMap=*/ true);
    unit = parser.parseCompilationUnit();
    unit.sourcefile = source;
}
 
开发者ID:tranleduy2000,项目名称:javaide,代码行数:32,代码来源:TestJavacParser.java

示例6: test3

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
public void test3() {
    Context context = new Context();
    DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
    context.put(DiagnosticListener.class, diagnostics);
    Options.instance(context).put("allowStringFolding", "false");
    JCTree.JCCompilationUnit unit;
    JavacFileManager fileManager = new JavacFileManager(context, true, UTF_8);
    try {
        fileManager.setLocation(StandardLocation.PLATFORM_CLASS_PATH, ImmutableList.<File>of());
    } catch (IOException e) {
        // impossible
        throw new IOError(e);
    }
    SimpleJavaFileObject source =
            new SimpleJavaFileObject(URI.create("source"), JavaFileObject.Kind.SOURCE) {
                @Override
                public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
                    return src;
                }
            };
    Log.instance(context).useSource(source);
    ParserFactory parserFactory = ParserFactory.instance(context);
    Parser parser =
            parserFactory.newParser(
                    src,
        /*keepDocComments=*/ true,
        /*keepEndPos=*/ true,
        /*keepLineMap=*/ true);
    unit = parser.parseCompilationUnit();
    unit.sourcefile = source;
}
 
开发者ID:tranleduy2000,项目名称:javaide,代码行数:32,代码来源:TestJavacParser.java

示例7: test2

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
public void test2() {
    Context context = new Context();
    DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
    context.put(DiagnosticListener.class, diagnostics);
    Options.instance(context).put("allowStringFolding", "false");
    JCTree.JCCompilationUnit unit;
    JavacFileManager fileManager = new JavacFileManager(context, true, UTF_8);
    try {
        fileManager.setLocation(StandardLocation.PLATFORM_CLASS_PATH, ImmutableList.<File>of());
    } catch (IOException e) {
        // impossible
        throw new IOError(e);
    }
    SimpleJavaFileObject source =
            new SimpleJavaFileObject(URI.create("source"), JavaFileObject.Kind.SOURCE) {
                @Override
                public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
                    return src;
                }
            };
    Log.instance(context).useSource(source);
    ParserFactory parserFactory = ParserFactory.instance(context);
    Parser parser =
            parserFactory.newParser(
                    src,
        /*keepDocComments=*/ true,
        /*keepEndPos=*/ true,
        /*keepLineMap=*/ true);
    unit = parser.parseCompilationUnit();
    unit.sourcefile = source;
}
 
开发者ID:tranleduy2000,项目名称:javaide,代码行数:32,代码来源:TestJavacParser.java

示例8: createFileManager

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
private static JavacFileManager createFileManager(Set<File> allSourcePaths) {
    JavacFileManager actualFileManager =
            JavacTool.create()
                    .getStandardFileManager(JavaLanguageServer::onDiagnostic, null, null);

    try {
        actualFileManager.setLocation(StandardLocation.SOURCE_PATH, allSourcePaths);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }

    return actualFileManager;
}
 
开发者ID:georgewfraser,项目名称:vscode-javac,代码行数:14,代码来源:Javadocs.java

示例9: test1

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
public void test1() {
    final String src = "package com.duy;\n" +
            "\n" +
            "import java.util.ArrayList;\n" +
            "/** * Created by Duy on 17-Jul-17. */\n" +
            "public class Main {\n" +
            "    public static void main(String[] args) {\n" +
            "        ArrayList list = new ArrayList();\n" +
            "        for (int i = 0; i < 1000; i++) {\n" +
            "            list.add(i);\n" +
            "        }\n" +
            "    }\n" +
            "\n";
    Context context = new Context();
    DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
    context.put(DiagnosticListener.class, diagnostics);
    Options.instance(context).put("allowStringFolding", "false");
    JCTree.JCCompilationUnit unit;
    JavacFileManager fileManager = new JavacFileManager(context, true, UTF_8);
    try {
        fileManager.setLocation(StandardLocation.PLATFORM_CLASS_PATH, ImmutableList.<File>of());
    } catch (IOException e) {
        // impossible
        throw new IOError(e);
    }
    SimpleJavaFileObject source =
            new SimpleJavaFileObject(URI.create("source"), JavaFileObject.Kind.SOURCE) {
                @Override
                public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
                    return src;
                }
            };
    Log.instance(context).useSource(source);
    ParserFactory parserFactory = ParserFactory.instance(context);
    Parser parser =
            parserFactory.newParser(
                    src,
        /*keepDocComments=*/ true,
        /*keepEndPos=*/ true,
        /*keepLineMap=*/ true);
    unit = parser.parseCompilationUnit();
    System.out.println(unit.getImports());

}
 
开发者ID:tranleduy2000,项目名称:javaide,代码行数:45,代码来源:ParserTest.java

示例10: format

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
/**
 * Construct a {@code Formatter} given a Java compilation unit. Parses the code; builds a {@link
 * JavaInput} and the corresponding {@link JavaOutput}.
 *
 * @param javaInput  the input, a Java compilation unit
 * @param javaOutput the {@link JavaOutput}
 * @param options    the {@link JavaFormatterOptions}
 */
static void format(
        final JavaInput javaInput, JavaOutput javaOutput, JavaFormatterOptions options) {
    Context context = new Context();
    DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
    context.put(DiagnosticListener.class, diagnostics);
    Options.instance(context).put("allowStringFolding", "false");
    JCCompilationUnit unit;
    JavacFileManager fileManager = new JavacFileManager(context, true, UTF_8);
    try {
        fileManager.setLocation(StandardLocation.PLATFORM_CLASS_PATH, ImmutableList.<File>of());
    } catch (IOException e) {
        // impossible
        throw new IOError(e);
    }
    SimpleJavaFileObject source =
            new SimpleJavaFileObject(URI.create("source"), JavaFileObject.Kind.SOURCE) {
                @Override
                public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {
                    return javaInput.getText();
                }
            };
    Log.instance(context).useSource(source);
    ParserFactory parserFactory = ParserFactory.instance(context);
    Parser parser =
            parserFactory.newParser(
                    javaInput.getText(),
        /*keepDocComments=*/ true,
        /*keepEndPos=*/ true,
        /*keepLineMap=*/ true);
    unit = parser.parseCompilationUnit();
    unit.sourcefile = source;

    javaInput.setCompilationUnit(unit);
    Iterable<Diagnostic<? extends JavaFileObject>> errorDiagnostics =
            Iterables.filter(diagnostics.getDiagnostics(), ERROR_DIAGNOSTIC);
    if (!Iterables.isEmpty(errorDiagnostics)) {
        throw FormattingError.fromJavacDiagnostics(errorDiagnostics);
    }
    OpsBuilder builder = new OpsBuilder(javaInput, javaOutput);
    // Output the compilation unit.
    new JavaInputAstVisitor(builder, options.indentationMultiplier()).scan(unit, null);
    builder.sync(javaInput.getText().length());
    builder.drain();
    Doc doc = new DocBuilder().withOps(builder.build()).build();
    doc.computeBreaks(
            javaOutput.getCommentsHelper(), options.maxLineLength(), new Doc.State(+0, 0));
    doc.write(javaOutput);
    javaOutput.flush();
}
 
开发者ID:tranleduy2000,项目名称:javaide,代码行数:58,代码来源:Formatter.java

示例11: run

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
public void run(PrintWriter out, String... args) throws BadArgs, IOException {
    env = new Env();
    processArgs(args);

    if (needHelp)
        showHelp(out);

    if (javacFiles.isEmpty()) {
        if (!needHelp)
            out.println(localize("dc.main.no.files.given"));
    }

    JavacTool tool = JavacTool.create();

    JavacFileManager fm = new JavacFileManager(new Context(), false, null);
    fm.setSymbolFileEnabled(false);
    fm.setLocation(StandardLocation.PLATFORM_CLASS_PATH, javacBootClassPath);
    fm.setLocation(StandardLocation.CLASS_PATH, javacClassPath);
    fm.setLocation(StandardLocation.SOURCE_PATH, javacSourcePath);

    JavacTask task = tool.getTask(out, fm, null, javacOpts, null,
            fm.getJavaFileObjectsFromFiles(javacFiles));
    Iterable<? extends CompilationUnitTree> units = task.parse();
    ((JavacTaskImpl) task).enter();

    env.init(task);
    checker = new Checker(env);

    DeclScanner ds = new DeclScanner() {
        @Override
        void visitDecl(Tree tree, Name name) {
            TreePath p = getCurrentPath();
            DocCommentTree dc = env.trees.getDocCommentTree(p);

            checker.scan(dc, p);
        }
    };

    ds.scan(units, null);

    reportStats(out);

    Context ctx = ((JavacTaskImpl) task).getContext();
    JavaCompiler c = JavaCompiler.instance(ctx);
    c.printCount("error", c.errorCount());
    c.printCount("warn", c.warningCount());
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:48,代码来源:DocLint.java

示例12: run

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
public void run(PrintWriter out, String... args) throws BadArgs, IOException {
    env = new Env();
    processArgs(args);

    boolean noFiles = javacFiles.isEmpty();
    if (needHelp) {
        showHelp(out);
        if (noFiles)
            return;
    } else if (noFiles) {
        out.println(localize("dc.main.no.files.given"));
        return;
    }

    JavacTool tool = JavacTool.create();

    JavacFileManager fm = new JavacFileManager(new Context(), false, null);
    fm.setSymbolFileEnabled(false);
    if (javacBootClassPath != null) {
        fm.setLocation(StandardLocation.PLATFORM_CLASS_PATH, javacBootClassPath);
    }
    if (javacClassPath != null) {
        fm.setLocation(StandardLocation.CLASS_PATH, javacClassPath);
    }
    if (javacSourcePath != null) {
        fm.setLocation(StandardLocation.SOURCE_PATH, javacSourcePath);
    }

    JavacTask task = tool.getTask(out, fm, null, javacOpts, null,
            fm.getJavaFileObjectsFromFiles(javacFiles));
    Iterable<? extends CompilationUnitTree> units = task.parse();
    ((JavacTaskImpl) task).enter();

    env.init(task);
    checker = new Checker(env);

    DeclScanner ds = new DeclScanner(env) {
        @Override
        void visitDecl(Tree tree, Name name) {
            TreePath p = getCurrentPath();
            DocCommentTree dc = env.trees.getDocCommentTree(p);

            checker.scan(dc, p);
        }
    };

    ds.scan(units, null);

    reportStats(out);

    Context ctx = ((JavacTaskImpl) task).getContext();
    JavaCompiler c = JavaCompiler.instance(ctx);
    c.printCount("error", c.errorCount());
    c.printCount("warn", c.warningCount());
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:56,代码来源:DocLint.java

示例13: test

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
void test(String testName, boolean expectNames, String... opts) throws Exception {
    System.err.println("Test " + testName
            + ": expectNames:" + expectNames
            + " javacOpts:" + Arrays.asList(opts));

    File outDir = new File(testName);
    outDir.mkdirs();
    compile(outDir, opts);

    Context ctx = new Context();
    JavacFileManager fm = new JavacFileManager(ctx, true, null);
    fm.setLocation(StandardLocation.CLASS_PATH, Arrays.asList(outDir));
    Symtab syms = Symtab.instance(ctx);
    ClassReader cr = ClassReader.instance(ctx);
    cr.saveParameterNames = true;
    Names names = Names.instance(ctx);

    Set<String> classes = getTopLevelClasses(outDir);
    Deque<String> work = new LinkedList<String>(classes);
    String classname;
    while ((classname = work.poll()) != null) {
        System.err.println("Checking class " + classname);
        ClassSymbol sym = syms.enterClass(syms.noModule, names.table.fromString(classname));
        sym.complete();

        if ((sym.flags() & Flags.INTERFACE) != 0 && !testInterfaces)
            continue;

        for (Symbol s : sym.members_field.getSymbols(NON_RECURSIVE)) {
            System.err.println("Checking member " + s);
            switch (s.kind) {
                case TYP: {
                    String name = s.flatName().toString();
                    if (!classes.contains(name)) {
                        classes.add(name);
                        work.add(name);
                    }
                    break;
                }
                case MTH:
                    verify((MethodSymbol) s, expectNames);
                    break;
            }

        }
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:48,代码来源:T6889255.java

示例14: run

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
public void run(PrintWriter out, String... args) throws BadArgs, IOException {
    env = new Env();
    processArgs(args);

    boolean noFiles = javacFiles.isEmpty();
    if (needHelp) {
        showHelp(out);
        if (noFiles)
            return;
    } else if (noFiles) {
        out.println(localize("dc.main.no.files.given"));
        return;
    }

    JavacTool tool = JavacTool.create();

    JavacFileManager fm = new JavacFileManager(new Context(), false, null);
    fm.setSymbolFileEnabled(false);
    fm.setLocation(StandardLocation.PLATFORM_CLASS_PATH, javacBootClassPath);
    fm.setLocation(StandardLocation.CLASS_PATH, javacClassPath);
    fm.setLocation(StandardLocation.SOURCE_PATH, javacSourcePath);

    JavacTask task = tool.getTask(out, fm, null, javacOpts, null,
            fm.getJavaFileObjectsFromFiles(javacFiles));
    Iterable<? extends CompilationUnitTree> units = task.parse();
    ((JavacTaskImpl) task).enter();

    env.init(task);
    checker = new Checker(env);

    DeclScanner ds = new DeclScanner(env) {
        @Override
        void visitDecl(Tree tree, Name name) {
            TreePath p = getCurrentPath();
            DocCommentTree dc = env.trees.getDocCommentTree(p);

            checker.scan(dc, p);
        }
    };

    ds.scan(units, null);

    reportStats(out);

    Context ctx = ((JavacTaskImpl) task).getContext();
    JavaCompiler c = JavaCompiler.instance(ctx);
    c.printCount("error", c.errorCount());
    c.printCount("warn", c.warningCount());
}
 
开发者ID:campolake,项目名称:openjdk9,代码行数:50,代码来源:DocLint.java

示例15: test

import com.sun.tools.javac.file.JavacFileManager; //导入方法依赖的package包/类
void test(String testName, boolean expectNames, String... opts) throws Exception {
    System.err.println("Test " + testName
            + ": expectNames:" + expectNames
            + " javacOpts:" + Arrays.asList(opts));

    File outDir = new File(testName);
    outDir.mkdirs();
    compile(outDir, opts);

    Context ctx = new Context();
    JavacFileManager fm = new JavacFileManager(ctx, true, null);
    fm.setLocation(StandardLocation.CLASS_PATH, Arrays.asList(outDir));
    ClassReader cr = ClassReader.instance(ctx);
    cr.saveParameterNames = true;
    Names names = Names.instance(ctx);

    Set<String> classes = getTopLevelClasses(outDir);
    Deque<String> work = new LinkedList<String>(classes);
    String classname;
    while ((classname = work.poll()) != null) {
        System.err.println("Checking class " + classname);
        ClassSymbol sym = cr.enterClass(names.table.fromString(classname));
        sym.complete();

        if ((sym.flags() & Flags.INTERFACE) != 0 && !testInterfaces)
            continue;

        for (Scope.Entry e = sym.members_field.elems; e != null; e = e.sibling) {
            System.err.println("Checking member " + e.sym);
            switch (e.sym.kind) {
                case Kinds.TYP: {
                    String name = e.sym.flatName().toString();
                    if (!classes.contains(name)) {
                        classes.add(name);
                        work.add(name);
                    }
                    break;
                }
                case Kinds.MTH:
                    verify((MethodSymbol) e.sym, expectNames);
                    break;
            }

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


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