Создайте Java-программу gdata - PullRequest
0 голосов
/ 04 января 2012

Я застрял в начале разработки. У меня есть простая тестовая программа, указанная ниже. Я следовал http://code.google.com/apis/gdata/articles/eclipse.html, чтобы настроить Eclipse.

import com.google.gdata.client.*;
import com.google.gdata.client.youtube.*;
import com.google.gdata.data.*;
import com.google.gdata.data.geo.impl.*;
import com.google.gdata.data.media.*;
import com.google.gdata.data.media.mediarss.*;
import com.google.gdata.data.youtube.*;
import com.google.gdata.data.extensions.*;
import com.google.gdata.util.*;
import java.io.IOException;
import java.io.File;
import java.net.URL;

public class Test {
  public static void main(String[] args) {
    YouTubeService service = new YouTubeService(
          "xxx.apps.googleusercontent.com", 
          "AAA");
    }
  }
}

Когда я запускаю java Test в консоли, я получаю исключение:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gdata/client/youtube/YouTubeService
at Test.main(Test.java:18)
Caused by: java.lang.ClassNotFoundException: com.google.gdata.client.youtube.YouTubeService
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 1 more

Когда я бегу в Eclipse, я получаю исключение:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Maps
at com.google.gdata.wireformats.AltRegistry.<init>(AltRegistry.java:118)
at com.google.gdata.wireformats.AltRegistry.<init>(AltRegistry.java:100)
at com.google.gdata.client.Service.<clinit>(Service.java:555)
at Test.main(Test.java:18)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Maps
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 4 more

Что здесь не так? Как это исправить?

1 Ответ

2 голосов
/ 04 января 2012

Похоже, вам не хватает google-collection API, который устарел и теперь заменяется guava для вашей второй ошибки (запущенной в eclipse) Для первой ошибки вы забыли добавить необходимые файлы jar к пути к классу (gdata-youtube-2.0.jar). используйте

java -cp ... gdata-youtube-2.0.jar ... your.java.Program

где ... символизирует другие необходимые библиотеки.

...