Avatar billede esneh Nybegynder
29. januar 2011 - 00:33 Der er 9 kommentarer og
1 løsning

Google Calendar API

Jeg har compilet et eksempel fra google som kan vise hvilke kaldenre man har tilknyttet sin googlekonto.
Jeg bruger Eclipse og har tilføjet alle de nødvendige biblioteker, og det køre også fint i Eclipse's konsol, men når jeg igennem min kommandoprompt (i Win 7) finder den .class (Calendar.class i dette tilfælde) fil der er blevet lavet, og skriver "java Calendar", så kommer den med denne fejl:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gdata/util/AuthenticationException

Caused by: java.lang.ClassNotFoundException: com.google.gdata.util.AuthenticationException
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: Calendar. Program will exit.


Min Sourcekode:

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;

import com.google.gdata.client.calendar.CalendarService;
import com.google.gdata.data.calendar.CalendarEntry;
import com.google.gdata.data.calendar.CalendarFeed;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.ServiceException;

/**
* This is a test template
*/

  public class Calendar {
   
    public static void main(String[] args) {
       
        CalendarService myService = new CalendarService("Hey");
        try {
        myService.setUserCredentials("din-mail@gmail.com", "Pass");
        } catch (AuthenticationException e2) {
            // TODO Auto-generated catch block
            e2.printStackTrace();
        }
           
        // Send the request and print the response
        URL feedUrl = null;
        try {
            feedUrl = new URL("https://www.google.com/calendar/feeds/default/allcalendars/full");
        } catch (MalformedURLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
       
        CalendarFeed resultFeed = null;
        try {
            resultFeed = myService.getFeed(feedUrl, CalendarFeed.class);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ServiceException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println("Your calendars:");
        System.out.println();
        for (int i = 0; i < resultFeed.getEntries().size(); i++) {
            CalendarEntry entry = resultFeed.getEntries().get(i);
            System.out.println("\t" + entry.getTitle().getPlainText());
        }
    }
       
     
    }

I Eclipse's konsol, står der rigtig nok hvilke der er tilknyttet min konto
Avatar billede arne_v Ekspert
29. januar 2011 - 00:39 #1
Prøv med:

java -cp C:\et\eller\andet\etnavn.jar Calendar

C:\et\eller\andet\etnavn.jar er den jar som indeholder Google Calendar API.
Avatar billede esneh Nybegynder
29. januar 2011 - 00:54 #2
Får den her fejl:

D:\Dropbox\Programmering\Java\BtoG\bin>java -cp C:\Users\Hense\Desktop\Eclipse\G
Data\java\lib Calendar

Exception in thread "main" java.lang.NoClassDefFoundError: Calendar
Caused by: java.lang.ClassNotFoundException: Calendar
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: Calendar.  Program will exit.

Hvor C:\Users\Hense\Desktop\Eclipse\G
Data\java\lib er stien til alle .jar filerne (Da Google API'et består af mere end en .jar fil)
Avatar billede arne_v Ekspert
29. januar 2011 - 01:44 #3
java -cp C:\Users\Hense\Desktop\Eclipse\GData\java\lib\*.jar Calendar
Avatar billede esneh Nybegynder
29. januar 2011 - 02:07 #4
Den kommer bare med:

D:\Dropbox\Programmering\Java\BtoG\bin>java -cp C:\Users\Hense\Desktop\Eclipse\G
Data\java\lib\*.jar Calendar
Exception in thread "main" java.lang.NoClassDefFoundError: C:\Users\Hense\Deskto
p\Eclipse\GData\java\lib\gdata-analytics-meta-2/1/jar
Caused by: java.lang.ClassNotFoundException: C:\Users\Hense\Desktop\Eclipse\GDat
a\java\lib\gdata-analytics-meta-2.1.jar
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: C:\Users\Hense\Desktop\Eclipse\GData\java\lib\gda
ta-analytics-meta-2.1.jar.  Program will exit.

Og hvis man bare for sjov sletter den .jar fil og kalder den igen, så er det bare den næste .jar fils navn der står i stedet for gdata-analytics-meta-2.1.jar
Avatar billede arne_v Ekspert
29. januar 2011 - 02:28 #5
Så prøv:

java -cp C:\Users\Hense\Desktop\Eclipse\GData\java\lib\* Calendar
Avatar billede esneh Nybegynder
29. januar 2011 - 02:48 #6
Giver den samme fejl som før.
Men jeg vil gå i seng nu og prøve videre imorgen
Avatar billede arne_v Ekspert
29. januar 2011 - 03:49 #7
Hvis du bruger en Java version ældre end 1.6 så skal du angive alle jar filerne separat adski,dt af semikolon til -cp.
Avatar billede esneh Nybegynder
29. januar 2011 - 10:52 #8
java version "1.6.0_23"
Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
Java HotSpot(TM) 64-Bit Server VM (build 19.0-b09, mixed mode)
Avatar billede esneh Nybegynder
29. januar 2011 - 11:30 #9
Jeg har fundet en løsning, som er at exportere projektet i Eclipse til en .jar fil. Hvor jeg vælger at "Extract required libraries into generated JAR".
Og når jeg kører .jar filen, så virker alt som det skal.
Men jeg siger tak for hjælpen Arne, og smid svar hvis du vil have point
Avatar billede arne_v Ekspert
29. januar 2011 - 17:48 #10
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester