誰能幫我除錯當我執行時會出現
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;
} }
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;
} }
楼主【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 %
楼主该结一些帖子了
你是要直接运行这个类??需要一个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;
} }
EXIFReader er = new EXIFReader ();
re.show();
}
show();
}
之前有人跟我說不用好像也可以
他說他只是要編譯這個JAVA
然後得到class檔之後
就可以直接提取
不過編譯好像就沒過了
改成这样
虽然可以编译执行
但好像印不出东西
是哪边有错误吗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;
} }
改成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;
} }
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());
}
}*/ 不要注释,放代码出来啊。
Java code public static void main(String[] args) {
EXIFReader er = new EXIFReader ();
re.show();
}