2012-06-04 4 views
12

.java 파일을 작성한 도구를 만들고 해당 파일을 .class 파일로 컴파일합니다. 한 프로세스 내에서 사용자는 여러 .java 파일이 작성된 파일 디렉토리를 선택합니다. 이제 프로그램에서이 Java 파일을 컴파일하도록합니다.Java 내에서 외부 .java 파일 컴파일

답변

14

JavaCompiler은 (는) 친구입니다. 여기에 문서 here

그리고 당신이 코드가 JRE에서 실행중인 경우 null 될 것입니다 컴파일러 API를

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>(); 
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null); 
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList("YouFileToCompile.java")); 
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null, 
     null, compilationUnits); 
boolean success = task.call(); 
fileManager.close(); 
+0

나는이 시도하고 절대 경로로 "YouFileToCompile.java을"대체 지금은에서 NullPointerException이 얻을 : (NULL, NULL, 진단) StandardJavaFileManager로 파일 관리자 = compiler.getStandardFileManager을 (문제?) –

+0

'compiler' 변수와 같은 소리는'null'입니다. Java 설치가 올바른지 확인하십시오. http://www.java.net/node/688208 – GETah

+0

.java 파일이어야합니까? .txt 파일에 코드가 있으면 작동합니까? – JD9999

4

JavaCompiler을 사용할 수있는 방법에 대한 예를 확인하십시오. tools.jar을 포함하는 JDK가 필요합니다.