带有springboot的Java编译器api在tomcat下运行的问题

时间:2019-08-02 12:28:06

标签: java spring-boot tomcat java-compiler-api

我正在执行api时动态创建文件,

代码如下:

StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnosticsCollector, null, null);
fileManager.setLocation(StandardLocation.CLASS_OUTPUT, Arrays.asList(new File(Constants.PROCESSING_SCRIPTS_LOCATION)));
List<String> optionList = new ArrayList<String>();
optionList.addAll(Arrays.asList("-classpath", "--location of jar separated by :--"))
CompilationTask compilerTask = compiler.getTask(null, fileManager, diagnosticsCollector,
    optionList, null, fileManager.getJavaFileObjectsFromFiles(Arrays.asList(sourceFile)));

与“ mvn spring-boot:run”一起使用时,此方法完全可以正常工作。

但是当我们创建应用程序之战并将其放入tomcat容器时,它对那里的所有内部代码(我们的应用程序)引用都不起作用,它说:“包...不存在”。

在调用“ compiler.getTask”之前,我们尝试设置诸如将应用程序war放置在lib(tomcat目录)中或在类路径上添加更多的jar / war之类的东西,但均无济于事。请让我们知道这里可以做些什么。

0 个答案:

没有答案