当前位置: 首页 > 知识库问答 >
问题:

用JavaCompiler编译生成的代码和jar

东郭赞
2023-03-14
javac generated/Buffer.java -classpath framework-core.jar
String path = "/generated/Buffer.java";
File file = new File(System.getProperty("user.dir") + path);
File[] files1 = new File[]{file};
//HERE I WOULD LIKE TO GIVE framework-core.jar TO COMPILER

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);

Iterable<? extends JavaFileObject> compilationUnits1 = fileManager.getJavaFileObjectsFromFiles(Arrays.asList(files1));

compiler.getTask(null, fileManager, null, null, null, compilationUnits1).call();

fileManager.close();

我还想知道是否会有更直接的方法来编译和运行生成的代码

共有1个答案

西门山
2023-03-14
List<String> optionList = new ArrayList<String>();
// set compiler's classpath to the path of your framework-core.jar
optionList.addAll(Arrays.asList("classpath","/lib/framework-core.jar"));
...
compiler.getTask(null, fileManager, null, optionList, null, compilationUnits1).call();    
 类似资料:
  • 问题内容: 我正在编写用于Java学习的Web应用程序。使用哪些用户可以在我的服务器上编译其代码+运行该代码。使用JavaCompiler可以很容易地进行编译: 我设法用代码加载类: 我如何保护我的应用程序免遭无休止的循环和邪恶的学生;) 有什么办法可以终身运行该代码? 内存泄漏有任何风险吗,我该怎么解决。 这是一个好的解决方案,还是您可以提出更好的建议? 谢谢。齐姆 问题答案: 我如何保护我的应

  • 我使用了Jooq官方网站上的这个工具:https://github.com/etiennestuder/gradle-jooq-plugin从我的数据库生成代码。 但如果我设置

  • 至少在GCC中,如果我们提供生成汇编代码的选项,编译器会通过创建一个包含汇编代码的文件来服从。但是,当我们简单地运行命令而没有任何选项时,它不会在内部生成汇编代码吗? 如果是,那么为什么它需要首先生成一个汇编代码,然后将其翻译成机器语言?

  • 我使用kapt编写了一个代码生成器,并在使用maven编译kotlin的项目中使用它。 我发现kapt生成器是在Kotlin的编译阶段之后调用的,这使得我无法在同一个项目中使用kotlin中生成的代码。 然而,如果我在同一个项目中引用Java内部生成的类,它就能很好地工作。这是因为java编译阶段在kotlin的生成阶段之后。 我已经在maven配置中指定了静态编程语言编译目标之前的kapt目标(

  • 生成的服务代理上的3.5.1版编译失败,错误-未报告的异常java.io。不支持的编码异常;必须被抓到或宣布被抛出 在“扔t”上生成错误的代理代码- 堆栈跟踪-

  • 问题内容: 请帮助我,如何使AngularJS编译指令生成的代码? 您甚至可以在这里找到相同的代码,http://jsbin.com/obuqip/4/edit 的HTML Java脚本 问题答案: 这是一个既不使用编译功能也不使用链接功能的版本: 请注意,模板被包装在中,因为模板需要具有一个根元素。(如果没有,它将有两个 根元素。) 需要对HTML进行少许修改以进行插值: 小提琴。