我用下面的程序运行打印不出结果呀?
package numberstring;
 
public class numbertobinarystringdemo{
   public static void main(String[] args){
        int int1=55;
        System.out.println("Integer.toBinaryString(int1)="   +  Integer.toBinaryString(int1));
        long long1=252;
        System.out.println("Long.toBinaryString(Long1)="   +  Long.toBinaryString(long1));
        System.out.println("Integer.toOctalString(int1)="    +  Integer.toOctalString(int1));
        System.out.prin
把package numberstring;去掉就没有问题.........

解决方案 »

  1.   

    不理解,关package什么事啊,我能运行的
      

  2.   

    是类包吧
    就是我把那个去掉后才能用呀!G:\javawork\lesson8>java numbertobinarystringdemo.java
    Exception in thread "main" java.lang.NoClassDefFoundError: numbertobinarystringd
    emo/java你们能运行我不是不相信我只是想我为什么不能运行呀
      

  3.   

    编译没问题吧?
    运行java numberstring.numbertobinarystringdemo
      

  4.   

    你需要这样运行:
    java numberstring.numbertobinarystringdemo
      

  5.   

    虚拟机是这样寻找类的,首先是寻找classpath的当前路径,如果寻找到合适的后,就不会继续寻找,就算你其他地方还可以找到一个合适的类。
    如果你只是在numbertobinarystringdemo类放置的路径下直接运行:
    java numbertobinarystringdemo   这样是不行的,因为虚拟机找到合适的类后,还要判断它放置的位置是否正确。你这样运行确实是找到了 numbertobinarystringdemo类,但是虚拟机是在当前路径找到的,不是在numberstring这个包找到的,尽管你确实把它放在numberstring这文件夹下,但是虚拟机首先寻找classpath,结果就找到了,它会认为这个类是默认包的,然后它进入类后发现里面写着:package numberstring  ,就是说这个类应该是numberstring包的才对,不是默认包,所以就报错了。
    你如果去掉package numberstring这个语句,这个类就是默认包的,所以编译器找到后就不会报错了。
      

  6.   

    因此你需要:java numberstring.numbertobinarystringdemo
    运行,这样虚拟机就会第一时间去包numberstring找那个类,不会从默认包(你的classpath)开始。结果找到的类,然后判断它确实是属于numberstring包,所以运行正常。
      

  7.   

    楼主你是不是打错了 
    应该是javac  numbertobinarystringdemo.java
          java  numbertobinarystringdemo