//文件名:Operator.java
package book.basic;public class Operator
{
private void computeOperator()
{
int a=8;
int b=5;
int f=a/b;
double g=a/b;
System.out.println("(f=a/b)="+f+"; (g=a/b)="+g);
double h=a/(b*1.0d);
float i=a/(b*1.0f);
System.out.println("(h=a/(b*1.0d))="+h+"(i=a/(b*1.0f))"+i);
}
private void compareOperator()
{
int a=5;
int b=10;
System.out.println("(a==b)="+(a==b));
System.out.println("(a<b)="+(a<b));
System.out.println("(a>b)="+(a>b));
System.out.println("(a!=b)="+(a!=b));
System.out.println("(a<=b)="+(a<=b));
System.out.println("(a>=b)="+(a>=b));
}
private void bitOperator()
{
byte a=23;
byte b=26;
int c=a&b;
System.out.println("(c=a&b)="+c);
int d=a|b;
System.out.println("(d=a|b)="+d);
int e=a^b;
System.out.println("(e=a^b)="+e);
int f=~a;
System.out.println("(f=~a)="+f);
int g=a>>1;
System.out.println("(g=a>>1)="+g);
int h=a>>>1;
System.out.println("(h=a>>>1)="+h);
System.out.println("(-24>>>1)="+(-24>>1)+"\t(-24>>>1)"+(-24>>>1));
int i=a<<1;
System.out.println("(i=a<<1)="+i);
}
public static void main(String[] args)
{
Operator test = new Operator();
System.out.println("计算运算符方法的输出:");
test.computeOperator();
System.out.println("比较运算符方法的输出:");
test.compareOperator();
System.out.println("位运算符方法的输出:");
test.bitOperator();
}
}运行错误错误信息如下:
java.lang.NoClassDefFoundError: Operator (wrong name: book/basic/Operator)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: Operator. Program will exit.
Exception in thread "main"
第二行package book.basic 是什么东西啊,是否与路径有关?我电脑里设置的路径如下:CLASSPATH .;D:\Sun\AppServer\jdk\lib\tools.jar;D:\Sun\AppServer\jdk\lib\dt.jar;D:\Sun\AppServer\jdk\lib\tools.jar;D:\Sun\AppServer\lib\j2ee.jar;D:\tomcat\binJAVA_HOME D:\Sun\AppServer\jdk
package book.basic;public class Operator
{
private void computeOperator()
{
int a=8;
int b=5;
int f=a/b;
double g=a/b;
System.out.println("(f=a/b)="+f+"; (g=a/b)="+g);
double h=a/(b*1.0d);
float i=a/(b*1.0f);
System.out.println("(h=a/(b*1.0d))="+h+"(i=a/(b*1.0f))"+i);
}
private void compareOperator()
{
int a=5;
int b=10;
System.out.println("(a==b)="+(a==b));
System.out.println("(a<b)="+(a<b));
System.out.println("(a>b)="+(a>b));
System.out.println("(a!=b)="+(a!=b));
System.out.println("(a<=b)="+(a<=b));
System.out.println("(a>=b)="+(a>=b));
}
private void bitOperator()
{
byte a=23;
byte b=26;
int c=a&b;
System.out.println("(c=a&b)="+c);
int d=a|b;
System.out.println("(d=a|b)="+d);
int e=a^b;
System.out.println("(e=a^b)="+e);
int f=~a;
System.out.println("(f=~a)="+f);
int g=a>>1;
System.out.println("(g=a>>1)="+g);
int h=a>>>1;
System.out.println("(h=a>>>1)="+h);
System.out.println("(-24>>>1)="+(-24>>1)+"\t(-24>>>1)"+(-24>>>1));
int i=a<<1;
System.out.println("(i=a<<1)="+i);
}
public static void main(String[] args)
{
Operator test = new Operator();
System.out.println("计算运算符方法的输出:");
test.computeOperator();
System.out.println("比较运算符方法的输出:");
test.compareOperator();
System.out.println("位运算符方法的输出:");
test.bitOperator();
}
}运行错误错误信息如下:
java.lang.NoClassDefFoundError: Operator (wrong name: book/basic/Operator)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: Operator. Program will exit.
Exception in thread "main"
第二行package book.basic 是什么东西啊,是否与路径有关?我电脑里设置的路径如下:CLASSPATH .;D:\Sun\AppServer\jdk\lib\tools.jar;D:\Sun\AppServer\jdk\lib\dt.jar;D:\Sun\AppServer\jdk\lib\tools.jar;D:\Sun\AppServer\lib\j2ee.jar;D:\tomcat\binJAVA_HOME D:\Sun\AppServer\jdk
------------------
你要运行的类文件。按通常做法是在ClassPath中加入".;"来设定让java
到当前目录下查找要运行的类文件,但是这个办法只适合没有包结构的
最简单的java类文件。对于大多数有包结构的类文件则仍然会出现同样
的错误。
最好的解决办法是,举个例子对于HelloWorld.class文件,它的包
结构为package com.system.register.hello; 你要找到编译生成的
class文件存放的位置,假定路径是C:\xxx\com\system\register\hello\HelloWorld.class
在classpath里加上C:\xxx;
或者你可以在某个盘(假定F盘)下建一个class文件夹,找到编译后文件的package根目录,
对于上边例子就是com文件夹,注意:将com文件夹拷贝到class文件夹目录下
然后在classpath里加上F:\class;
这样吧 你用命令去做吧 先把这个文件拷到D盘根目录下面然后进入命令行吧当前目录切换到d的目录javac -d . Operator.java //编译,并在当前目录下面生成包结构
java book.basic.Operator //运行 类名要加包名
按上面放置 class 文件,然后
java book.basic.Operator
wrong name: book/basic/Operator
这里应该说明了运行的就是java book.basic.Operator
你为什么不自己试一下呢 就下结论呢如果你有一个类Hello 在包test里面你用java Hello 运行就会报这种错误
说到底就是java解释器找不到你要运行的类文件。
你只需把编译好的class文件添加到classpath即可。
详细阅读7楼的内容。
1 错误
你要告诉他错在哪里
以后他犯同样的错就可以知道问题所在并加以解决
什么换个IDE之类的都是瞎扯,是偷懒的做法
下次他同一个地方跌倒都不知道为什么
-d <目录> 指定存放生成的类文件的位置
现在你去自己电脑上看看,应该在不同文件路径下存在2个Operator.class文件
你的问题还是没彻底解决,如果没有把你用IDE编译的存放class的路径添加到classpath
再写一个class还是同样的问题,你只能还用-d来勉强过关
你最好是找到IDE编译的class文件存放路径,将它添加到classpath
的确多了个 book 路径,呵呵,明天给你加分。