站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题JAVA程序出错,java.lang.NoClassDefFoundError

JAVA程序出错,java.lang.NoClassDefFoundError

摘要: JAVA程序出错,java.lang.NoClassDefFoundError


我觉得应该是环境变量问题。因为
1、这个是书上源代码下载来的
2、在任何一个IDE里面都可以运行

出错现象:可以编译,但是运行就报错 java.lang.NoClassDefFoundError

源代码如下:
public class Main {
public Main() {
}
public static void main(String[] args) {
System.out.println(-#34;That-#39;s OK!-#34;);// TODO code application logic here
}
}

但是我的环境变量已经设置过了,我是这样设置的
用户变量中 classpath 对应 .;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
系统变量中也是这样

还有java_home path 也设置过了。到底是什么问题啊。好烦哦!




把 public 去掉试试


报错是 Exception in thread -#34;main-#34; java.lang.NoClassDefFoundError: MyProgram/java

楼上的,把哪个public去掉?我用的是JDK 1.5


class Main {
public Main() {
}
public static void main(String[] args) {
System.out.println(-#34;That-#39;s OK!-#34;);// TODO code application logic here
}
}
这样试试看 我运行就可以 我的也是JDK1.5


请确认你运行的时候的包名是正确的


包名字正确 可以运行的 按你给的包名字运行的


用JB运行吧!!


我知道在IDE里面可以运行的。但是我是初学者,不想依赖IDE,想在命令行下面学习。这样才可以更加深刻理解


1。 首先你现在命令行里面敲上 java -version, 看看能不能出来jdk的版本; 如果显示了正确的版本号, 说明你的配置没有问题。。
2。 public class Main {
public Main() {
}
public static void main(String[] args) {
System.out.println(-#34;That-#39;s OK!-#34;);// TODO code application logic here
}
}, 源代码看上去是没有错误的;(你的构造函数可以删除)。
3。 这个类的必须保存为Main.java;
4. 在命令行中进入存放该文件(Main.java)的路径下, 然后在命令行中敲javac Main.java
5. 这个时候应该在存放该文件(Main.java)的路径下产生Main.class文件;
6。 执行java Main;

OVER...


classpath设置的问题


java version -#34;1.5.0_07-#34;
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)
Java HotSpot(TM) Client VM (build 1.5.0_07-b03, mixed mode, sharing)

上面的是结果。应该设置对了的。


如果你在程序里加了
package MyProgram.java;
那就要把Main.class放到文件夹MyProgram/java里
执行
java MyProgram/java/Main


NoClassDefFoundError
当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。

当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。



把classpath设为空!
core java2 第7版上说, 对于简单的java应用程序,不用设置classpath!!


set classpath=.;
java MyProgram


↑返回目录
前一篇: 如何初始化java数组??
后一篇: java.lang.Class中的getMethod方法这么奇怪呀,参数啥意思呀