誰能幫我除錯當我執行時會出現
java.lang.NoSuchMethodError: main
Exception in thread "main" 
請問要怎麼改才能
import com.drew.metadata.*; 
import com.drew.metadata.exif.*; 
import com.drew.imaging.jpeg.JpegProcessingException; 
import java.io.*; 
import java.util.Iterator; public class EXIFReader { public static String show() throws FileNotFoundException { 
String str = "";
  File f = new File("c:\\b.jpg"); 
  try { 
  ExifReader er = new ExifReader(f); 
  Metadata exif = er.extract(); 
  Iterator itr = exif.getDirectoryIterator(); 
  while (itr.hasNext()) { 
    Directory directory = (Directory) itr.next();     str +="EXIF版本:" + directory.getString(ExifDirectory.TAG_EXIF_VERSION)+"<br>";  
    str +="相机品牌:" + directory.getString(ExifDirectory.TAG_MAKE)+"<br>";  
    str +="像机号码:" + directory.getString(ExifDirectory.TAG_MODEL)+"<br>";  
    str +="光 圈 值:" + directory.getString(ExifDirectory.TAG_FNUMBER)+"<br>";  
    str +="快    门:" + directory.getString(ExifDirectory.TAG_EXPOSURE_TIME)+"<br>";  
    str +="感 光 度:" + directory.getString(ExifDirectory.TAG_ISO_EQUIVALENT)+"<br>"; 
    str +="软    件:" + directory.getString(ExifDirectory.TAG_SOFTWARE)+"<br>"; 
    str +="原始拍摄时间:" + directory.getString(ExifDirectory.TAG_DATETIME_ORIGINAL)+"<br>"; 
    str +="数字化时间:" + directory.getString(ExifDirectory.TAG_DATETIME_DIGITIZED)+"<br>"; 
    str +="方    向:" + directory.getString(ExifDirectory.TAG_ORIENTATION)+"<br>"; 
    str +="图片宽度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_WIDTH)+"<br>"; 
    str +="图片高度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_HEIGHT)+"<br>"; 
    str +="水平分辨率:" + directory.getString(ExifDirectory.TAG_X_RESOLUTION)+"<br>"; 
    str +="垂直分辨率:" + directory.getString(ExifDirectory.TAG_Y_RESOLUTION)+"<br>"; 
    str +="垂直分辨率:" + directory.getString(ExifDirectory.TAG_EXPOSURE_BIAS); 
    break;   
    /*Iterator tags = directory.getTagIterator(); 
    while (tags.hasNext()) { 
    Tag tag = (Tag) tags.next(); 
    System.out.println(tag); 
    } 
    if (directory.hasErrors()) { 
    Iterator errors = directory.getErrors(); 
    while (errors.hasNext()) { 
      System.out.println("ERROR:  " + errors.next()); 
    } 
    }*/ 
  } 
  } catch (JpegProcessingException e) { 
  System.err.println("not  jpeg  file"); 
  } 
return str;
} } 

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【tdc5580268】截止到2008-07-10 14:03:25的历史汇总数据(不包括此帖):
    发帖的总数量:13                       发帖的总分数:260                      每贴平均分数:20                       
    回帖的总数量:9                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:3                        结贴的总分数:40                       
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:10                       未结的总分数:220                      
    结贴的百分比:23.08 %               结分的百分比:15.38 %                  
    无满意结贴率:33.33 %               无满意结分率:50.00 %                  
    楼主该结一些帖子了
      

  2.   


    你是要直接运行这个类??需要一个main方法import com.drew.metadata.*; 
    import com.drew.metadata.exif.*; 
    import com.drew.imaging.jpeg.JpegProcessingException; 
    import java.io.*; 
    import java.util.Iterator; public class EXIFReader { public static void main(String[] args)throws FileNotFoundException{
        show();
    }
    public static String show() throws FileNotFoundException { 
    String str = "";
      File f = new File("c:\\b.jpg"); 
      try { 
      ExifReader er = new ExifReader(f); 
      Metadata exif = er.extract(); 
      Iterator itr = exif.getDirectoryIterator(); 
      while (itr.hasNext()) { 
        Directory directory = (Directory) itr.next();     str +="EXIF版本:" + directory.getString(ExifDirectory.TAG_EXIF_VERSION)+"<br>";  
        str +="相机品牌:" + directory.getString(ExifDirectory.TAG_MAKE)+"<br>";  
        str +="像机号码:" + directory.getString(ExifDirectory.TAG_MODEL)+"<br>";  
        str +="光 圈 值:" + directory.getString(ExifDirectory.TAG_FNUMBER)+"<br>";  
        str +="快    门:" + directory.getString(ExifDirectory.TAG_EXPOSURE_TIME)+"<br>";  
        str +="感 光 度:" + directory.getString(ExifDirectory.TAG_ISO_EQUIVALENT)+"<br>"; 
        str +="软    件:" + directory.getString(ExifDirectory.TAG_SOFTWARE)+"<br>"; 
        str +="原始拍摄时间:" + directory.getString(ExifDirectory.TAG_DATETIME_ORIGINAL)+"<br>"; 
        str +="数字化时间:" + directory.getString(ExifDirectory.TAG_DATETIME_DIGITIZED)+"<br>"; 
        str +="方    向:" + directory.getString(ExifDirectory.TAG_ORIENTATION)+"<br>"; 
        str +="图片宽度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_WIDTH)+"<br>"; 
        str +="图片高度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_HEIGHT)+"<br>"; 
        str +="水平分辨率:" + directory.getString(ExifDirectory.TAG_X_RESOLUTION)+"<br>"; 
        str +="垂直分辨率:" + directory.getString(ExifDirectory.TAG_Y_RESOLUTION)+"<br>"; 
        str +="垂直分辨率:" + directory.getString(ExifDirectory.TAG_EXPOSURE_BIAS); 
        break;   
        /*Iterator tags = directory.getTagIterator(); 
        while (tags.hasNext()) { 
        Tag tag = (Tag) tags.next(); 
        System.out.println(tag); 
        } 
        if (directory.hasErrors()) { 
        Iterator errors = directory.getErrors(); 
        while (errors.hasNext()) { 
          System.out.println("ERROR:  " + errors.next()); 
        } 
        }*/ 
      } 
      } catch (JpegProcessingException e) { 
      System.err.println("not  jpeg  file"); 
      } 
    return str;
    } } 
      

  3.   

    没有运行主体 mainpublic static void main(String[] args) {
     EXIFReader er = new EXIFReader ();
     re.show();
    }
      

  4.   

    写错  是er.show();如何在一个类里  直接可以
    show();
      

  5.   

    public static void main(String[] args) {  
    }
      

  6.   

    我是要用jsp去提取它裡面的內容
    之前有人跟我說不用好像也可以
    他說他只是要編譯這個JAVA
    然後得到class檔之後
    就可以直接提取
    不過編譯好像就沒過了
      

  7.   

    请问lovingprince
    改成这样
    虽然可以编译执行
    但好像印不出东西
    是哪边有错误吗import com.drew.metadata.*; 
    import com.drew.metadata.exif.*; 
    import com.drew.imaging.jpeg.JpegProcessingException; 
    import java.io.*; 
    import java.util.Iterator; public class EXIFReader { public static void main(String[] args)throws FileNotFoundException{
        show();
    }public static String show() throws FileNotFoundException { 
    String str = "";
      File f = new File("c:\\b.jpg"); 
      try { 
      ExifReader er = new ExifReader(f); 
      Metadata exif = er.extract(); 
      Iterator itr = exif.getDirectoryIterator(); 
      while (itr.hasNext()) { 
        Directory directory = (Directory) itr.next();     str +="EXIF版本:" + directory.getString(ExifDirectory.TAG_EXIF_VERSION)+"<br>";  
        str +="相机品牌:" + directory.getString(ExifDirectory.TAG_MAKE)+"<br>";  
        str +="像机号码:" + directory.getString(ExifDirectory.TAG_MODEL)+"<br>";  
        str +="光 圈 值:" + directory.getString(ExifDirectory.TAG_FNUMBER)+"<br>";  
        str +="快    门:" + directory.getString(ExifDirectory.TAG_EXPOSURE_TIME)+"<br>";  
        str +="感 光 度:" + directory.getString(ExifDirectory.TAG_ISO_EQUIVALENT)+"<br>"; 
        str +="软    件:" + directory.getString(ExifDirectory.TAG_SOFTWARE)+"<br>"; 
        str +="原始拍摄时间:" + directory.getString(ExifDirectory.TAG_DATETIME_ORIGINAL)+"<br>"; 
        str +="数字化时间:" + directory.getString(ExifDirectory.TAG_DATETIME_DIGITIZED)+"<br>"; 
        str +="方    向:" + directory.getString(ExifDirectory.TAG_ORIENTATION)+"<br>"; 
        str +="图片宽度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_WIDTH)+"<br>"; 
        str +="图片高度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_HEIGHT)+"<br>"; 
        str +="水平分辨率:" + directory.getString(ExifDirectory.TAG_X_RESOLUTION)+"<br>"; 
        str +="垂直分辨率:" + directory.getString(ExifDirectory.TAG_Y_RESOLUTION)+"<br>"; 
        str +="垂直分辨率:" + directory.getString(ExifDirectory.TAG_EXPOSURE_BIAS); 
        break;   
        /*Iterator tags = directory.getTagIterator(); 
        while (tags.hasNext()) { 
        Tag tag = (Tag) tags.next(); 
        System.out.println(tag); 
        } 
        if (directory.hasErrors()) { 
        Iterator errors = directory.getErrors(); 
        while (errors.hasNext()) { 
          System.out.println("ERROR:  " + errors.next()); 
        } 
        }*/ 
      } 
      } catch (JpegProcessingException e) { 
      System.err.println("not  jpeg  file"); 
      } 
    return str;
    } }
      

  8.   

    你都没用System.out.println();
    改成import com.drew.metadata.*; 
    import com.drew.metadata.exif.*; 
    import com.drew.imaging.jpeg.JpegProcessingException; 
    import java.io.*; 
    import java.util.Iterator; public class EXIFReader { public static void main(String[] args)throws FileNotFoundException{
        show();
    }public static String show() throws FileNotFoundException { 
    String str = "";
      File f = new File("c:\\b.jpg"); 
      try { 
      ExifReader er = new ExifReader(f); 
      Metadata exif = er.extract(); 
      Iterator itr = exif.getDirectoryIterator(); 
      while (itr.hasNext()) { 
        Directory directory = (Directory) itr.next();   System.out.println("EXIF版本:" + directory.getString(ExifDirectory.TAG_EXIF_VERSION));      
      
         System.out.println("相机品牌:" + directory.getString(ExifDirectory.TAG_MAKE));      
      
         System.out.println("相机型号:" + directory.getString(ExifDirectory.TAG_MODEL));      
      
         System.out.println("光 圈 值:" + directory.getString(ExifDirectory.TAG_FNUMBER));      
      
         System.out.println("快    門:" + directory.getString(ExifDirectory.TAG_EXPOSURE_TIME));      
      
         System.out.println("感 光 度:" + directory.getString(ExifDirectory.TAG_ISO_EQUIVALENT));   
      
         System.out.println("软    件:" + directory.getString(ExifDirectory.TAG_SOFTWARE));    
      
         System.out.println("原始拍摄时间:" + directory.getString(ExifDirectory.TAG_DATETIME_ORIGINAL));   
      
         System.out.println("数字化时间:" + directory.getString(ExifDirectory.TAG_DATETIME_DIGITIZED));   
      
         System.out.println("方    向:" + directory.getString(ExifDirectory.TAG_ORIENTATION));   
      
         System.out.println("图片宽度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_WIDTH));   
      
         System.out.println("图片高度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_HEIGHT));   
      
         System.out.println("水平分辨率:" + directory.getString(ExifDirectory.TAG_X_RESOLUTION));   
      
         System.out.println("垂直分辨率:" + directory.getString(ExifDirectory.TAG_Y_RESOLUTION));   
      
         System.out.println("垂直分辨率:" + directory.getString(ExifDirectory.TAG_EXPOSURE_BIAS));   
        break;   
        /*Iterator tags = directory.getTagIterator(); 
        while (tags.hasNext()) { 
        Tag tag = (Tag) tags.next(); 
        System.out.println(tag); 
        } 
        if (directory.hasErrors()) { 
        Iterator errors = directory.getErrors(); 
        while (errors.hasNext()) { 
          System.out.println("ERROR:  " + errors.next()); 
        } 
        }*/ 
      } 
      } catch (JpegProcessingException e) { 
      System.err.println("not  jpeg  file"); 
      } 
    return str;
    } }
      

  9.   

    没有main();你是咋运行起来的啊?
      

  10.   

       /*Iterator tags = directory.getTagIterator(); 
        while (tags.hasNext()) { 
        Tag tag = (Tag) tags.next(); 
        System.out.println(tag); 
        } 
        if (directory.hasErrors()) { 
        Iterator errors = directory.getErrors(); 
        while (errors.hasNext()) { 
          System.out.println("ERROR:  " + errors.next()); 
        } 
        }*/ 不要注释,放代码出来啊。
      

  11.   

    没有运行主体 main 
    Java code public static void main(String[] args) { 
    EXIFReader er = new EXIFReader (); 
    re.show();