JavaCompiler API继承类路径?

问题描述

我正在使用JavaCompiler API编译一些具有库依赖性的代码。它可以很好地编译,但是问题是它不应该-我还没有给它一个classpath参数。这意味着它必须从用来编译它的程序中获取库。我不希望使用这些库,因为它们可能是与我要编译的库不同的版本。

下面是我正在使用的代码

            List<String> compileOptions = Arrays.asList(
                    "-d",requestFolder.getAbsolutePath());
            JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
            StandardJavaFileManager fileManager = compiler.getStandardFileManager(null,null,null);
            Iterable<? extends JavaFileObject> compilationunits1 = fileManager.getJavaFileObjects(
                    checkedOutFiles.toArray(new File[checkedOutFiles.size()]));
            compiler.getTask(null,fileManager,compileOptions,compilationunits1).call();
            fileManager.close();`

是否可以使用这些库停止它?我看到StandardJavaFileManager具有getClassLoader()方法,但没有设置器。我假设它是类加载器继承自我正在运行的程序,这就是为什么编译有效的原因?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)