在命令行方式下执行某一个class文件,出现
如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: NqGenKey/class
Caused by: java.lang.ClassNotFoundException: NqGenKey.class
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
这个问题已经出现过无数次,一直记不住是如何解决
原来是这样的
1.如果引用了其他的java库文件,则classpath 必须设置,classpath代表 class search path
2.必须使用java NqGenKey 而不是java NqGenKey.class
3.如果不设置classpath环境变量,不设置classpath参数,默认为当前目录
4.如果设置了classpath ,那么必须将当前路径加入到classpath中
或者命令下直接加入
windows下
java -cp "%CLASSPATH%;." NqGenKey
Linux下
java -cp $CLASSPATH:. NqGenKey