//这是一个文件
package com.star.dbtest;
import java.io.*;
public class Logger
{
public void writelog(String content)
{
try
{
String fileName = "C:\\Application.log";
FileWriter writer = new FileWriter(fileName);
writer.write(content);
writer.write("\n");
writer.close();
}
catch(IOException e)
{
}
}
}
//这是第二个文件
package com.star.dbtest;
public class test
{
public static void main(String[] args)
{
Logger mylog = new Logger();
mylog.writelog("test");
}
}然后在命令行编译:
javac Logger.java test.java;
编译没问题。
然后命令行执行:
java test
报错,Exception in thread "main" java.lang.NoClassDefFoundError:test(wrong name:com/star/dbtest/test)
请问这个错是怎么回事
package com.star.dbtest;
import java.io.*;
public class Logger
{
public void writelog(String content)
{
try
{
String fileName = "C:\\Application.log";
FileWriter writer = new FileWriter(fileName);
writer.write(content);
writer.write("\n");
writer.close();
}
catch(IOException e)
{
}
}
}
//这是第二个文件
package com.star.dbtest;
public class test
{
public static void main(String[] args)
{
Logger mylog = new Logger();
mylog.writelog("test");
}
}然后在命令行编译:
javac Logger.java test.java;
编译没问题。
然后命令行执行:
java test
报错,Exception in thread "main" java.lang.NoClassDefFoundError:test(wrong name:com/star/dbtest/test)
请问这个错是怎么回事
public class test
{
public static void main(String[] args)
{
Logger mylog = new Logger();
mylog.writelog("test");
}
}
这段代码中的Logger没有指定位置,在最上面加上import com.star.dbtest.Logger;因为不在同一个包中的2个类互相引用的用import。不过,你的2个包怎么是一个名字,如果是同一个包中的2个类就不用引用了。
classes/com/star/dbtest/test.class
classes/com/star/dbtest/Logger.class
那么你在cmd中进入classes目录,然后java com.star.dbtest.test就OK了。
java com.star.dbtest.类名