//文件名: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

解决方案 »

  1.   

    我是在 UltraEdit 按 F9 直接使用命令 java Operator 运行的,可能跟用 cmd 运行一样吧。
      

  2.   

    建议重新安装jdk!
    ------------------
      

  3.   

    应该 java book.basic.Operator 运行的时候类名要加上包名才可以
      

  4.   

    java.lang.NoClassDefFoundError的错误,这是因为java解释器找不到 
    你要运行的类文件。按通常做法是在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;
      

  5.   

    你直接运行 ? 难道不需要编译吗?
    这样吧 你用命令去做吧 先把这个文件拷到D盘根目录下面然后进入命令行吧当前目录切换到d的目录javac -d . Operator.java //编译,并在当前目录下面生成包结构
    java book.basic.Operator  //运行 类名要加包名
      

  6.   

    编译:javac book.basic.Operator.java运行:java book.basic.Operator 
      

  7.   

    任意一个ClassPath路径/book/basic/Operator.class
    按上面放置 class 文件,然后
    java book.basic.Operator
      

  8.   


    wrong name: book/basic/Operator
    这里应该说明了运行的就是java book.basic.Operator 
      

  9.   

    有个建议,先试运行个简单的HelloWorld
      

  10.   

    实在不行就在eclipse里建工程吧,然后直接在eclipse里运行。
      

  11.   


    你为什么不自己试一下呢 就下结论呢如果你有一个类Hello 在包test里面你用java Hello 运行就会报这种错误 
      

  12.   

    怎么还没搞定呢?
    说到底就是java解释器找不到你要运行的类文件。
    你只需把编译好的class文件添加到classpath即可。
    详细阅读7楼的内容。
      

  13.   

    错误: 无法读取: book.basic.Operator.java
    1 错误
      

  14.   

    大家回帖也要有点水准
    你要告诉他错在哪里
    以后他犯同样的错就可以知道问题所在并加以解决
    什么换个IDE之类的都是瞎扯,是偷懒的做法
    下次他同一个地方跌倒都不知道为什么
      

  15.   


     -d <目录>                    指定存放生成的类文件的位置
      

  16.   

    9楼帮你解决问题是因为-d参数指定了生产class文件的位置
    现在你去自己电脑上看看,应该在不同文件路径下存在2个Operator.class文件
    你的问题还是没彻底解决,如果没有把你用IDE编译的存放class的路径添加到classpath
    再写一个class还是同样的问题,你只能还用-d来勉强过关
    你最好是找到IDE编译的class文件存放路径,将它添加到classpath
      

  17.   


    的确多了个 book 路径,呵呵,明天给你加分。