我在Web应用程序上有条件,我上传了一个.java源文件,并根据jar文件的依赖关系编译这个源文件驻留在WEB-INF / lib文件夹中。
我能够通过使用此代码加载此jar文件,并且我的文件成功编译并在WEB-INF / classes中的适当包中部署.class。在这个线程的帮助下。 How to set classpath when I use javax.tools.JavaCompiler compile the source?
File[] javaFiles = new File[]{new File(fileToCompile)};
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromFiles(Arrays.asList(javaFiles));
List<String> optionList = new ArrayList<String>();
optionList.addAll(Arrays.asList("-classpath", System.getProperty("java.class.path")));
fileManager.setLocation(StandardLocation.CLASS_OUTPUT,
Arrays.asList(new File(servletContextPath + WEB_CLASSES_PATH)));
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, optionList, null, compilationUnits);
当我上传一个实际上与我当前的应用程序java文件有关联的.java源文件时,我遇到的唯一问题是找不到此源的引用并抱怨错误。
A类实现了com.saif.WebDriverEventListener
包com.saif不存在。
任何帮助将不胜感激。 谢谢,