Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.help > #886

Re: Beginners Problem - Class Definition Not Found

From lewbloch <lewbloch@gmail.com>
Newsgroups comp.lang.java.help
Subject Re: Beginners Problem - Class Definition Not Found
Date 2011-07-22 13:47 -0700
Organization http://groups.google.com
Message-ID <f0f08dea-92d5-476f-beae-d6e1f94f3d50@j14g2000prn.googlegroups.com> (permalink)
References <j0c2h9$c93$1@theodyn.ncf.ca> <98ti2oFgmgU1@mid.individual.net>

Show all headers | View raw


On Jul 22, 8:08 am, Nigel Wade <nmw-n...@ion.le.ac.uk> wrote:
> On 22/07/11 15:47, William Colls wrote:
>
>
>
>
>
>
>
>
>
> > Environment:
> > Kubuntu 10.04 patched up to date 64 bit.
> > java version 1.6.0_24
> > Netbeans IDE 6.8
>
> > I am trying to set up a connection to my google calendar, using the
> > information provided at the Google API web site. I have the following
> > program, which builds correctly with the Netbeans IDE 6.8
>
> > If I understand the error message correctly, it is saying that it can't
> > find a class definition for com.google.gdata.wireformats.AltRegistry.
> > This class appears to be defined in gdata-core-1.0.jar. This file is in
> > the library listing for Netbeans.
>
> > At runtime, the CLASSPATH variable points to the folder that contains
> > all the .jar files that are referenced by the import statements.
>
> > So why doesn't the program find the class definition?
>
> > // begin my program
>
> > package google;
>
> > import com.google.gdata.client.*;
> > import com.google.gdata.client.calendar.*;
> > import com.google.gdata.data.*;
> > import com.google.gdata.data.acl.*;
> > import com.google.gdata.data.calendar.*;
> > import com.google.gdata.data.extensions.*;
> > import com.google.gdata.util.*;
>
> > import java.net.*;
> > import java.io.*;
>
> > import sample.util.*;
>
> > public class Calender {
>
> > public static void main(String[] args) {
>
> > CalendarService myService = null;
> > URL feedUrl = null;
> > CalendarFeed resultFeed = null;
>
> > try {
> > myService = new CalendarService("exampleCo-exampleApp-1.0");
> > myService.setUserCredentials("r...@gmail.com", "pa$$word");
> > }
> > catch(AuthenticationException ae) {
> > System.out.println("Authentication Exception: " + ae.getMessage());
> > }
>
> > try {
> > feedUrl = new
>
> > URL("http://www.google.com/calendar/feeds/default/allcalendars/full");
> > resultFeed = myService.getFeed(feedUrl, CalendarFeed.class);
> > }
>
> > catch(MalformedURLException mue) {
> > System.out.println("URL Exception: " + mue.getMessage());
> > }
>
> > catch(ServiceException se) {
> > System.out.println("Service Exception: " + se.getMessage());
> > }
> > catch (java.io.IOException ioe) {
> > System.out.println("IO Exception: " + ioe.getMessage());
> > }
>
> > 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());
> > }
> > }
> > }
>
> > // end my program
>
> > However when I try to run it I get the following error message:
>
> > 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 google.Calender.main(Calender.java:27)
> > 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:307)
> > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> > at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> > ... 4 more
>
> > I recognize that the credentials provided in the listing above are
> > wrong. I will put the correct ones in when I get this thing to run.
>
> > Thanks for your patience with a beginner in the wonderful world of java [sic].
>
> The classpath doesn't include all jar's [sic] in a directory.
>
> Classpath defines 2 things. The root directory of a package hierarchy
> for class files, and/or a jar file. So, for class files you use a
> directory in the classpath, for a jar file you use the path of the jar
> (note, not the directory containing the jar, the actual jar file). With
> NetBeans you ought not to need to set the classpath.
>
> How are you running your application? If you are running it within
> NetBeans then it should take care of all this for you. If you are
> running it outside of NetBeans then NetBeans should have created a dist/
> directory containing your application jar, and a dist/lib directory
> containing each referenced jar. Each of the jar's in the dist/lib
> directory should be set in the classpath section of the jar's manifest.

There is an option to classpath specification (for which the CLASSPATH
envar is often a very poor choice) to include all JARs in a directory
with a wildcard.  Check the documentation.
http://download.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html
http://download.oracle.com/javase/6/docs/technotes/tools/solaris/classpath.html

--
Lew

Back to comp.lang.java.help | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Beginners Problem - Class Definition Not Found William Colls <william.colls@rogers.com> - 2011-07-22 10:47 -0400
  Re: Beginners Problem - Class Definition Not Found Nigel Wade <nmw-news@ion.le.ac.uk> - 2011-07-22 16:08 +0100
    Re: Beginners Problem - Class Definition Not Found lewbloch <lewbloch@gmail.com> - 2011-07-22 13:47 -0700
  Re: Beginners Problem - Class Definition Not Found Roedy Green <see_website@mindprod.com.invalid> - 2011-07-22 16:16 -0700
    Re: Beginners Problem - Class Definition Not Found lewbloch <lewbloch@gmail.com> - 2011-07-23 09:49 -0700

csiph-web