2014-02-05 6 views
1

자바에서는 런타임에 문자열에 포함 된 소스 코드 (예 : javax.tools.JavaCompiler, EclipseCompiler 또는 Janino)를 사용하여 클래스를 컴파일하고로드 할 수 있습니다. 이 프로세스는 임시 파일을 쓰지 않고 전적으로 메모리에있을 수 있습니다.Xtend 문자열에서 Java 코드 문자열을 동적으로 생성 할 수 있습니까?

Xtend 언어는 Xtend 소스 코드를 Java 소스 코드로 변환 한 다음 컴파일하여 작동합니다. (내가 틀렸다면 수정하십시오.) Xtend 소스 코드가 포함 된 문자열을 Java 소스 코드가 포함 된 문자열로 변환하여 내가 선호하는 동적 컴파일러를 사용할 수 있습니까? 런타임시 Xtend 소스를로드 가능한 클래스로 변환하고 싶습니다. 가능한 경우 어떤 기능/클래스를 호출해야합니까?

* Runtime = no Eclipse-IDE, JDK (JRE 전용), Xtend dependencies 만 사용.

답변

1

Xtend에는 Maven 플러그인이 있습니다. 그것은 XtendBatchCompiler를 이용합니다. 순수 Java, ANT 등에서 호출 할 수 있어야합니다.

+0

예, 알고 있습니다 (감사합니다). 다른 사람이 좀 더 자세하게 말해 주길 바랬습니다.이 API는 상태를 변경함으로써 작동합니다 (예 : "컴파일"함수는 컴파일 된 코드가 아닌 부울을 반환합니다). 그래서 함수는 몇 가지 순서로 호출되어야합니다. 주문. 또한 Maven 플러그인의 기본 모드는 파일을 생성하며 모든 메모리 내에서 수행하려고합니다 (Google App Engine과 같은 일부 환경에서는 필요). –

+0

임시 저장소로 파일 시스템을 사용하여 에서 읽기/쓰기를 할 수 있다고 생각했는데 사용법은 org.eclipse.xtend.core.compiler.batch.Main.main (String []) –

+0

을 참조하십시오. Xtends 자신의 테스트에서 XtendCompilerTest를 활용할 수 있습니다. –