誰能幫我除錯當我執行時會出現
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;
} }
解决方案 »
- 在Swing中怎样才能把鼠标的活动范围限制在某个窗体内
- 请教一个统计调用对象次数的小程序
- 请教:struts中的表单和html中的表单在使用上有什么区别,为什么struts非要单独开发出一个表单来?
- [菜鸟问题]调试程序时输出很多东西,屏幕上一闪而过只剩下最后一页,也不能退回去看,怎么办
- 下载Documentation FOR JAVA 2 SDK。在线急等
- 急问诸位高手
- 初学者关于语句import java.util.Scanner的问题
- 为什么10可以赋值给byte,short和int而没有编译错误!
- list 的迭代器不支持set方法
- 如何从网页中抽取需要的信息
- set的值怎么遍利啊?
- 现在有一个类,类中有个方法。。。
楼主【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();
}