2012-11-14 5 views
3

j2objc를 사용하여 일부 Java 코드를 변환하려고합니다. 내가 어떤 클래스j2objc가 구아바를 지원합니까?

import com.google.common.collect.Maps; 

나는 그것이 해결 될 수 없다는 오류 메시지를 가져 오려고하면 내 코드, 구글 구아바 라이브러리를 사용합니다.

The import com.google.common cannot be resolved 

j2objc 변환기에서 구아바 지원을 사용하려면 특별한 조치가 필요합니까?

답변

3

Guava의 번역본은 현재 j2objc 배포본의 일부가 아니지만,지도를 포함한 해당 라이브러리의 큰 하위 집합을 포함 할 계획입니다. 현재 진행중인 프로젝트는 구아바 소스를 다운로드 한 다음 사용하려는 클래스를 번역하는 것입니다.

이 접근법의 한 가지 문제점은 종속 클래스의 종결을 결정하는 것입니다. 즉,지도에서 구아바 클래스가 사용하는 클래스와 해당 클래스의 종속성 등은 무엇입니까? 우리는 javac이 다음을 결정하도록합니다 :

$ javac -d /tmp/guava -sourcepath <guava-source-paths> com.google.common.collect.Maps 
$ cd /tmp/guava 

$ find com -name '*.class' > /tmp/all-classes.list # list all classes 
$ fgrep -v '$' < /tmp/all-classes.list > /tmp/classes.list # get rid of inner classes 
$ sed -s '/class$/java/' </tmp/classes.list> /tmp/source-files 

소스 파일 목록을 결정하는 도구는 다음 릴리스에서 사용할 계획입니다.