随笔-49  评论-67  文章-27  trackbacks-0

        前天给学生上课,想给大家演示一个JDBC的小程序的调试过程。开始一切都十分顺利,通过修改拼写错误和语法错误,程序可以正常编译了。下面的步骤就是运行程序显示结果了。

       可是当我在命令行里面键入:
               java CreateStudent
时,系统弹出如下错误提示:
               Exception in thread "main" java.lang.NoClassDefFoundError: CreateStudent
当时我找了很多地方都没有发现问题。

       后来等我回来,在网上找了一些资料才发现,原来需要在CLASSPATH中加入“.”,程序才能正常运行。或者在运行时加入参数-cp或-classpath,如:
               java -classpath . CreateStudent
这样问题就解决了!

posted on 2005-10-21 09:21 思考 阅读(59133) 评论(19)  编辑  收藏

评论:
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2005-12-12 10:37 | amateurlee
ding!!  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2006-08-08 16:20 | 蒋维
在网上看了好久才看到你这里来,一个“.”,害死我了。谢谢啊。
协会还出什么问题,我先来这里看看,呵呵。  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2006-09-15 13:07 | www
我正在调试一个包,编译通过啦,但用java 命令时出现了这个问题:
Exception in thread "main" java.lang.NoClassDefFoundError: UsingClass (wrong name: packageTwo/UsingClass)

我用了楼主的方法试了下,行不通,请给我指点一下。  回复  更多评论
  
# 关于排序的问题.请指教 2006-10-14 12:33 | 莫大
public class Arraysort1
{public static void main(String[] args)
{ Array1 s=new Array1();

int a[]={2,5,6,1,3,7,9,8,0,4};
int i,j;
for( i=0;i<a.length-1;i++)
{for(j=i;j<a.length;j++)
{s.sort(a[i],a[j]); }

}



System.out.print("排序后的数组为:");
for(j=0;j<a.length;j++)
System.out.print(a[j]+" ");
}

}
class Array1
{
public int sort(int s1,int s2)
{ if(s1>s2)
{s1=s1+s2;s2=s1-s2;s1=s1-s2;}
return 1;
}

}
我看不出错误,但它偏就错了??为什么???  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2006-10-17 09:39 | 苦啊
请说详细一点,你所谓的一个"."加在CLASSPATH的哪个位置,还有那一个"."有什么作用呢...  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2006-10-25 17:38 | 游客
@莫大

public int sort(int s1,int s2)
{ if(s1>s2)
{s1=s1+s2;s2=s1-s2;s1=s1-s2;}
return 1;
}
返回值有问题,s1,s2只是a[i],a[j]的引用,如果不返回值,它们原来的值不会改变吧,我是这样想的,建议方法和数据放在同一个类里。

据说还可以把两个参数封装到一个类里也可以,可以试试  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2006-11-01 11:39 | sku11
请问那个点加在哪?
谢谢  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2006-11-13 20:37 | 卢伟
谢谢!找了很久.  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2006-11-13 23:37 | AAA
@amateurlee
@游客
  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2006-11-15 11:19 | 安大计算机——赵勇
谢谢老师,我苦找答案一上午,终于找到了这里
请老师没事来我的博客看看给点指导:
http://jink2005.blog.sohu.com/  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2006-11-19 16:10 | lily[匿名]
这是我拷的一个例子,在编译的时候可以通过,但在执行的时候去总出现先您那样的错误。不知如何解决。我是一个初学者还请您多多指点。

package stuman;

import java.io.*;
import java.sql.*;

public class sqlBean{///

public Connection conn=null;

public ResultSet rs=null;

private String DatabaseDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";

private String DatabaseConnStr="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=educationi,'edu','edu'";
private String strcon = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=educationi";
private String strusr = "edu";
private String stupwd = "edu";
public void setDatabaseDriver(String Driver){
this.DatabaseDriver=Driver;
}
public String getDatabaseDriver(){
return (this.DatabaseDriver);
}

public void setDatabaseConnStr(String ConnStr){
this.DatabaseConnStr=ConnStr;
}
public String getDatabaseConnStr(){
return (this.DatabaseConnStr);
}

public sqlBean(){/////构造函数
try{


Class.forName(DatabaseDriver);
}
catch(java.lang.ClassNotFoundException e){
System.err.println("加载驱动器有错误:"+e.getMessage( ));
System.out.print("执行插入有错误:"+e.getMessage());//输出到客户端
}
}


public int executeInsert(String sql){
int num=0;
try{
conn = DriverManager.getConnection(strcon,strusr,stupwd);

Statement stmt=conn.createStatement( );
num=stmt.executeUpdate(sql);
}
catch(SQLException ex){
System.err.println("执行插入有错误:"+ex.getMessage() );
System.out.print("执行插入有错误:"+ex.getMessage());//输出到客户端
}

CloseDataBase();
return num;
}
// display data

public ResultSet executeQuery(String sql){
rs=null;
try{
conn = DriverManager.getConnection(strcon,strusr,stupwd);

Statement stmt=conn.createStatement( );
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println("执行查询有错误:"+ex.getMessage() );
System.out.print("执行查询有错误:"+ex.getMessage()); //输出到客户端
}

return rs;
}
// delete data
public int executeDelete(String sql){
int num=0;
try{

conn = DriverManager.getConnection(strcon,strusr,stupwd);

Statement stmt=conn.createStatement( );
num=stmt.executeUpdate(sql);
}
catch(SQLException ex){
System.err.println("执行删除有错误:"+ex.getMessage() );
System.out.print("执行删除有错误:"+ex.getMessage()); //输出到客户端
}
CloseDataBase();
return num;
}
//////////////////
public void CloseDataBase(){
try{
conn.close();
}
catch(Exception end){
System.err.println("执行关闭Connection对象有错误:"+end.getMessage( ) );
System.out.print("执行执行关闭Connection对象有错误:有错误:"+end.getMessage()); //输出到客户端
}
}
}
  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2007-10-30 12:29 | coffeemars
我在xp下安装文件的时候出了这个错,用同样的安装文件在别的机子上没有问题,请教各位大虾怎么解决?谢谢  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2007-12-16 09:18 | 朱远翔-Apusic技术支持工程师
老师,你每次都只说明解决方法,但是没有解释为什么这样可以。学生只学到所以然,但是不知其然,以后碰到同样的问题仍然无法做通。  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2008-02-18 18:33 | 石康志
. 代表的是文件的所在目录,如果你写的代码有两个以上的类,javac的时候就会产生不止一个文件,如果没有.的话,就会找不到这些文件。  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题[未登录] 2008-06-27 09:59 | wml
我用的是MyEclipse连接SQL数据库时出现的这个错误,请老师指点  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题 2008-10-23 14:17 | 李昱鑫
我也是用myeclipse连数据库时出现了这个错误,请高手指点
  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题[未登录] 2009-04-19 16:33 | yy
我写了一个类,然后写另一个类来调用这个类时没问题。但是当在Jsp或Servlet中调用这个类时,就提示java.lang.NoClassDefFoundError,请问该怎么设置才好?  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题[未登录] 2011-01-08 22:25 | 111
连这个都不知道 还教人,你到监狱教犯人?  回复  更多评论
  
# re: "java.lang.NoClassDefFoundError"错误——一个关于classpath设置的问题[未登录] 2011-06-30 09:58 |
@111
我操你吗 我真想妈你。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: