栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何获取JavaCompiler CompilationTask生成的类文件的列表?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何获取JavaCompiler CompilationTask生成的类文件的列表?

您为任务提供的文件管理器负责将摘要映射

JavaFileObject
到物理文件,因此它不仅 知道 访问或创建了哪些资源,甚至还 控制了
将要使用的物理资源。当然,也可以仅在处理后定位所创建的资源。这是一个简单的独立示例:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();StandardJavaFileManager fileManager = compiler.getStandardFileManager(null,null,null);Path tmp=Files.createTempDirectory("compile-test-");fileManager.setLocation(StandardLocation.CLASS_OUTPUT,Collections.singleton(tmp.toFile()));Path src=tmp.resolve("A.java");Files.write(src, Arrays.asList(        "package test;",        "class A {",        "    class B {",        "    }",        "}"));CompilationTask task = compiler.getTask(null, fileManager,        null, null, null, fileManager.getJavaFileObjects(src.toFile()));if(task.call()) {    for(JavaFileObject jfo: fileManager.list(StandardLocation.CLASS_OUTPUT,      "", Collections.singleton(JavaFileObject.Kind.CLASS), true)) {        System.out.println(jfo.getName());    }}

它将列出生成的

A.class
A$B.class
… 的位置



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/514498.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号