2014-12-09 2 views
1

Я пытаюсь использовать гуавы с j2objc, но я получаю сообщение об ошибке:Использование гуавы с j2objc

j2objc TestJava.java 
translating TestJava.java 
error: TestJava.java:1: The import com.google.common cannot be resolved 
error: TestJava.java:10: Lists cannot be resolved 
Translated 0 files: 2 errors, 0 warnings 

во время работы:

j2objc Test.java

где Test.java содержит:

import com.google.common.collect.Lists; 
import java.util.ArrayList; 

public class Test { 
    public static void TestMethod() { 
     ArrayList<String> objects = Lists.newArrayList(); 
     objects.add(0, "Hello world"); 
     System.out.println(objects);    
    } 
} 

Я загрузил последнюю версию 0.9.5 и добавил ее в .profile:

export PATH=$HOME/bin/j2objc-0.9.5:$PATH 

Что еще мне нужно сделать, чтобы использовать гуаву?

Спасибо!

+0

В этом случае добавление '-classpath $ HOME/bin/j2objc-0.9.5/lib/guava-14.0.1.jar' решило проблему. – 7ynk3r

ответ

1

Переводчик j2objc использует свой компилятор Java в качестве своего интерфейса, поэтому при переходе на классы Java необходимо использовать тот же путь к классам и путь к исходным файлам. Здесь вы получите аналогичную ошибку, если вы запустили «javac Test.java», потому что банку guava необходимо включить в путь к классам. В дистрибутив j2objc входит lib/guava-jdk5.jar, поэтому запустите «javac -classpath /lib/guava-jdk5.jar Test.java» и при необходимости устраните любые проблемы с каталогом для банды guava. Как только javac может скомпилировать его, замените «j2objc» на «javac», используя те же аргументы, и он должен хорошо перевести.

Вы не всегда должны использовать javac в первую очередь, но всякий раз, когда сообщается об ошибках перевода, это быстрый тест, чтобы узнать, связана ли проблема с отсутствующим исходным или классовым путем.

Одно отличие от Java заключается в том, что при связывании приложения для включения этой библиотеки необходим флаг -lguava.

Смежные вопросы