我的问题如下,比如我写了文件名为test1.java的java小程序:
class test1{
public static void main(String[] args){
System.out.println("this is a test.");
}
}执行命令:
javac test1.java
可正常编译
java test
出现的如下错误:Exception in thread "main" java.lang.NoClassDefFoundError: test1但是用JCreator可正常输出:this is a test. 没有报错这是怎么回事呀?
我的jdk版本如下:Java[TM] 2 Platform, Enterprise Edition 1.4 SDK Update 1(JCreator也是指向的这个jdk)
系统是Windows XP SP2
class test1{
public static void main(String[] args){
System.out.println("this is a test.");
}
}执行命令:
javac test1.java
可正常编译
java test
出现的如下错误:Exception in thread "main" java.lang.NoClassDefFoundError: test1但是用JCreator可正常输出:this is a test. 没有报错这是怎么回事呀?
我的jdk版本如下:Java[TM] 2 Platform, Enterprise Edition 1.4 SDK Update 1(JCreator也是指向的这个jdk)
系统是Windows XP SP2
javac test1.java
java test1
有哪位大侠知道呀,最好不是那种重新装系统的回答
一般机器上有两个jre,如果还装了jb等其他IDE的话,有可能还多
你看看你的java 是对应于哪个
我刚才看到我的主帖写错了,应该写成:java test1(就是这步出的错)
C:\Sun\AppServer\jdk\jre\lib\rt.jar;
C:\Sun\AppServer\jdk\lib\dt.jar;
C:\Sun\AppServer\jdk\lib\tools.jar;
C:\Sun\AppServer\jdk\jre\lib\ext\dnsns.jar;
C:\Sun\AppServer\jdk\jre\lib\ext\ldapsec.jar;
C:\Sun\AppServer\jdk\jre\lib\ext\localedata.jar;
C:\Sun\AppServer\jdk\jre\lib\ext\sunjce_provider.jar
环境变量我也是加的这个路径的
你的.java没用主类
CLASSPATH: %JAVA_HOME%\lib
PATH: %JAVA_HOME%\bin
说实在的真的是你的环境变量的问题!jcreator有一些不太好的地方,那就是帮我们把一些用命令运行会报错的程序在他的包装下可以正常运行!
有不少的例子,我说一个你可以去试试:
写一个包含两个类的文件,这两个类都有一个main方法,然后你去调试,你会发现一些有趣的问题!
假设两个类分别是texst1,test2你自己去把保存的文件名更改,然后再把两个类的顺序更改会有所发现的,特别是用命令方式去运行!
public class Test1
{
...;
}
才可以!
编译通过的话,还是应该是运行时的问题了
java XX.teset1.class
//将Test1设为公共类public class Test1{ //类名字的首字母最好大写,习惯。
public static void main(String[] args){
System.out.println("this is a test.");
}
}如果还有错,那是J2SE的环境变量没有配置好
javac Test1.javathenjava Test1ok!
classpath:C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib;
C:\Program Files\MySQL\MySQL Server 4.1\bin;
C:\Sun\AppServer\jdk\lib\dt.jar;
C:\Sun\AppServer\jdk\lib\tools.jar;
C:\Sun\AppServer\jdk\libpath:%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
C:\Program Files\ATI Technologies\ATI Control Panel;
C:\Sun\AppServer\jdk\bin;
C:\Program Files\Microsoft SQL Server\80\Tools\BINN;
C:\IMNnq_NT
重启后还是不行。
关于版本的问题,我想应该javac和java是一样的,因为javac 没有version参数,我就把javac和java用绝对路径执行,还是javac可以正常编译源文件为.class文件,而java还是报:
Exception in thread "main" java.lang.NoClassDefFoundError: test1如果有人确定是环境变量的问题那就请把你的设置给出来,我照着改个试试,再不成晚上结贴了
可正常编译
java test
这里错了哦!
java test1
就对了!
因为javac命令把你的test1.java编译成test1.class
所以你的java命令运行的也得是这个类才行么!!