Hi Churu, These are some examples of setting the class path in run time:
1- java -cp target/lib/*:target/* edu.brown.cs.zkbenchmark.ZooKeeperBenchmark --conf benchmark.conf 2- java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App 3- javac -classpath ./log4j-1.2.16.jar:./slf4j-api-1.6.1.jar:./slf4j-log4j12-1.6.1.jar LearnerLeaderACK/*.java java -cp .:./log4j-1.2.16.jar:./slf4j-api-1.6.1.jar:./slf4j-log4j12-1.6.1.jar LearnerLeaderACK/StartLeader Ibrahim -----Original Message----- From: Churu Tang [mailto:[email protected]] Sent: Wednesday, October 29, 2014 08:46 م To: [email protected] Subject: Re: How to run a simple Java Client 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(); >> } >> >> } >> >>
