compilationTask
의 소스 파일을 설정하는 방법을 모르겠습니다. CompilationTask로 컴파일 소스를 설정하는 방법
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
List<String> optionList = new ArrayList<String>(Arrays.asList("-d","build/classes"));
List<String> classes = new ArrayList<String>();
classes.add("src/Hello.java");
CompilationTask task = compiler.getTask(null, null, null, optionList, classes, null);
task.call();
을하지만 다음과 같은 오류 얻을 : 나는 클래스의 널 대신 넣으면 나는 "어떤 소스 파일"아니오 소스 파일로 얻을 물론
Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: src/Hello.java
을 주어졌다. 이 전에 JavaCompiler
실행 함수를 사용하여 시도했지만 문자열 인수 옵션을 지정할 수 없습니다 (또는 어떻게) 몰라. 변경 시도
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
StandardJavaFileManager fm = compiler.getStandardFileManager(diagnostics, null, null);
ArrayList<String> optionList = new ArrayList<String>(Arrays.asList("-d","build/classes"));
ArrayList<File> files = new ArrayList<File>();
files.add(new File("src/Hello.java"));
CompilationTask task = compiler.getTask(null, null, null, optionList, null, fm.getJavaFileObjectsFromFiles(files));
task.call();
혹시이 문제를 해결 했습니까? 그렇다면 솔루션을 게시 하시겠습니까? –
포스트가 솔루션 – Muaz