我用的是98。 这是我设置的jdk环镜: set classpath=.;c:\jdk1.3.1_06\lib set path=c:\jdk1.3.1_06\bin;%path% set classpath=c:\myclass;c:\jdk1.3.1_06\lib\tools.jar 错误显示就是上面的。
当我按照 javac -classpath "<mypath>" xxx.java 进行编译时,编译是可以通过的,但 java xxx 就出现了楼上所说的问题,我又执行 java -cp "<mypath>" xxx 结果出错提示如下: Exception in thread "main" java.lang.NoClassDefFoundError: a (wrong name: A) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:502) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12 3) at java.net.URLClassLoader.defineClass(URLClassLoader.java:250) at java.net.URLClassLoader.access$100(URLClassLoader.java:54) at java.net.URLClassLoader$1.run(URLClassLoader.java:193) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at java.lang.ClassLoader.loadClass(ClassLoader.java:299) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265) at java.lang.ClassLoader.loadClass(ClassLoader.java:255) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315) 还请各位高手指教一下。
例如:java myClass
其中myClass是你编译好的类myClass.class
java xxx ---------运行呵呵
javac xxx.java
java xxx
试过了,还是不行.
其错误显示是:
Exception in thread"main"java.lang.NoClassDefFoundError:xxx(文件名)
是不是我的jdk还有设置问题?
这是我设置的jdk环镜:
set classpath=.;c:\jdk1.3.1_06\lib
set path=c:\jdk1.3.1_06\bin;%path%
set classpath=c:\myclass;c:\jdk1.3.1_06\lib\tools.jar
错误显示就是上面的。
javac -classpath "<mypath>" xxx.java
进行编译时,编译是可以通过的,但
java xxx
就出现了楼上所说的问题,我又执行
java -cp "<mypath>" xxx
结果出错提示如下:
Exception in thread "main" java.lang.NoClassDefFoundError: a (wrong name: A)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
还请各位高手指教一下。
编译后,A.class和B.class都已经存在。
javac -d 包的父目录 类名.java
java 包名.类名
分就给你啦!!!^__^ 大家有兴趣可讨论一下是什么原因!!
classpath应当指向的是三个jar包,而不是jdk或jre的目录。
比如,我的jdk在
D:\j2sdk1.4.1,jre在D:\j2sdk1.4.1\jre,那么我的classpath就应该设置为
classpath=D:\j2sdk1.4.0\jre\lib\rt.jar;D:\j2sdk1.4.0\lib\tools.jar;D:\j2sdk1.4.0\lib\dt.jar;
在windows98下,它是在autoexe.bat中设置的,在windows2000中,它是在环境变量中设置的。