>> ~$ java ZKClient -classpath zookeeper-3.4.6.jar You're passing your classpath and jar file name in as arguments.
Assuming your executing from directory that contains both the class file you compiled and the zookeeper jar,try: java -cp . ZKClient On Wed, Oct 29, 2014 at 4:45 PM, Churu Tang <[email protected]> wrote: > Hi Ben, > > Thanks for you reply! I include the classpath, but it still throws the > same error > > ~$ java ZKClient -classpath zookeeper-3.4.6.jar > Exception in thread "main" java.lang.NoClassDefFoundError: > org/apache/zookeeper/Watcher > Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.Watcher > at java.net.URLClassLoader$1.run(URLClassLoader.java:217) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:205) > at java.lang.ClassLoader.loadClass(ClassLoader.java:321) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) > at java.lang.ClassLoader.loadClass(ClassLoader.java:266) > Could not find the main class: ZKClient. Program will exit. > > Anything else you think I can do to make it right? > > Cheers, > Churu > > On Oct 29, 2014, at 1:28 PM, Ben Hsu <[email protected]> wrote: > > > Hi Churu > > > > I believe you have to set your classpath when running java (not just when > > running javac!) > > > > On Wed, Oct 29, 2014 at 4:07 PM, Churu Tang <[email protected]> > > wrote: > > > >> Hi, > >> > >> I try to run a simple Java Client, but it keep throwing an error. Would > >> someone help me to figure out why? > >> ~$ javac ZKClient.java -classpath zookeeper-3.4.6.jar > >> ~$ java ZKClient > >> Exception in thread "main" java.lang.NoClassDefFoundError: > >> org/apache/zookeeper/Watcher > >> Caused by: java.lang.ClassNotFoundException: > org.apache.zookeeper.Watcher > >> at java.net.URLClassLoader$1.run(URLClassLoader.java:217) > >> at java.security.AccessController.doPrivileged(Native Method) > >> at java.net.URLClassLoader.findClass(URLClassLoader.java:205) > >> at java.lang.ClassLoader.loadClass(ClassLoader.java:321) > >> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) > >> at java.lang.ClassLoader.loadClass(ClassLoader.java:266) > >> Could not find the main class: ZKClient. Program will exit. > >> > >> I am a beginner in Java and Zookeeper, sorry for such a simple question. > >> Many thanks! > >> > >> Cheers, > >> Churu > >> > >> > >> ——————————————————————————ZKClient.java————————————————————————————— > >> import java.io.IOException; > >> > >> import org.apache.zookeeper.CreateMode; > >> import org.apache.zookeeper.KeeperException; > >> import org.apache.zookeeper.WatchedEvent; > >> import org.apache.zookeeper.Watcher; > >> import org.apache.zookeeper.ZooDefs.Ids; > >> import org.apache.zookeeper.ZooKeeper; > >> > >> public class ZKClient { > >> > >> public static void main(String[] args) throws Exception{ > >> Watcher wh = new Watcher(){ > >> @Override > >> public void process(WatchedEvent event) { > >> System.out.println(event.toString()); > >> } > >> }; > >> ZooKeeper zk = new ZooKeeper("localhost:2181",30000,wh); > >> System.out.println("=========Create Node==========="); > >> zk.create("/ctang", "znode1".getBytes(), Ids.OPEN_ACL_UNSAFE, > >> CreateMode.PERSISTENT); > >> System.err.println("=============Verify node created > >> successfully==============="); > >> System.out.println(new String(zk.getData("/ctang", false, > null))); > >> System.out.println("=========Modify data=========="); > >> zk.setData("/ctang", "sharpxiajun130901".getBytes(), -1); > >> System.out.println("========Verify node modified > >> successfully========="); > >> System.out.println(new String(zk.getData("/ctang", false, > null))); > >> System.out.println("=======Delete node=========="); > >> zk.delete("/ctang", -1); > >> System.out.println("==========Verify node deleted > >> successfully============"); > >> System.out.println("Note status:" + zk.exists("/ctang", false)); > >> zk.close(); > >> } > >> > >> } > >> > >> > >
