保存图片文件的时候,程序自动退出,说出现了unexpected exception!

slare 2003-02-14 12:21:29
我把一个BufferedImage保存为jpg文件的时候,有时候正常,有时候程序自动退出,命令行说出现了unexpected exception,命令行的输出如下:

An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x6D282529
Function=Java_com_sun_imageio_plugins_jpeg_JPEGImageReader_readImage+0x818
Library=D:\j2sdk14\jre\bin\jpeg.dll

Current Java thread:
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage(Native Method)
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:928)
at javax.imageio.ImageWriter.write(ImageWriter.java:593)
at org.robochina.iiley.SmogCanvas.saveAsJPG(SmogCanvas.java:311)
at org.robochina.iiley.SmogPainter.saveFileAs(SmogPainter.java:412)
at org.robochina.iiley.SmogPainter$8.actionPerformed(SmogPainter.java:202)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1770)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1823)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:422)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:260)
at javax.swing.AbstractButton.doClick(AbstractButton.java:292)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1094)
at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(BasicMenuItemUI.java:934)
at java.awt.Component.processMouseEvent(Component.java:5020)
at java.awt.Component.processEvent(Component.java:4819)
at java.awt.Container.processEvent(Container.java:1383)
at java.awt.Component.dispatchEventImpl(Component.java:3527)
at java.awt.Container.dispatchEventImpl(Container.java:1440)
at java.awt.Component.dispatchEvent(Component.java:3368)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3219)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2930)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2866)
at java.awt.Container.dispatchEventImpl(Container.java:1426)
at java.awt.Window.dispatchEventImpl(Window.java:1568)
at java.awt.Component.dispatchEvent(Component.java:3368)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:448)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:193)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:141)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:133)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:101)

Dynamic libraries:
0x00400000 - 0x00406000 D:\j2sdk14\bin\java.exe
0x77F80000 - 0x77FFB000 C:\WINNT\System32\ntdll.dll
0x77D90000 - 0x77DEB000 C:\WINNT\system32\ADVAPI32.dll
0x77E60000 - 0x77F34000 C:\WINNT\system32\KERNEL32.DLL
0x77D20000 - 0x77D90000 C:\WINNT\system32\RPCRT4.DLL
0x78000000 - 0x78046000 C:\WINNT\system32\MSVCRT.dll
0x6D330000 - 0x6D441000 D:\j2sdk14\jre\bin\client\jvm.dll
0x77DF0000 - 0x77E54000 C:\WINNT\system32\USER32.dll
0x77F40000 - 0x77F7C000 C:\WINNT\system32\GDI32.DLL
0x77530000 - 0x77560000 C:\WINNT\System32\WINMM.dll
0x75E00000 - 0x75E1A000 C:\WINNT\System32\IMM32.DLL
0x10000000 - 0x10019000 C:\WINNT\System32\NVDESK32.DLL
0x6D1D0000 - 0x6D1D7000 D:\j2sdk14\jre\bin\hpi.dll
0x6D300000 - 0x6D30D000 D:\j2sdk14\jre\bin\verify.dll
0x6D210000 - 0x6D227000 D:\j2sdk14\jre\bin\java.dll
0x6D320000 - 0x6D32D000 D:\j2sdk14\jre\bin\zip.dll
0x6D000000 - 0x6D0F6000 D:\j2sdk14\jre\bin\awt.dll
0x777C0000 - 0x777DD000 C:\WINNT\System32\WINSPOOL.DRV
0x77A30000 - 0x77B26000 C:\WINNT\system32\ole32.dll
0x6D180000 - 0x6D1D0000 D:\j2sdk14\jre\bin\fontmanager.dll
0x72800000 - 0x72806000 C:\WINNT\System32\DCIMAN32.dll
0x69500000 - 0x697BC000 C:\WINNT\System32\nvoglnt.dll
0x60000000 - 0x60045000 C:\WINNT\System32\MSCTF.dll
0x37F00000 - 0x37F16000 D:\Program Files\Kingsoft\XDict\Cjktl32.dll
0x12280000 - 0x1228D000 C:\WINNT\DOWNLO~1\BDPlugin.dll
0x785C0000 - 0x78802000 C:\WINNT\system32\SHELL32.dll
0x77C50000 - 0x77C9A000 C:\WINNT\system32\SHLWAPI.DLL
0x77B30000 - 0x77BB9000 C:\WINNT\system32\COMCTL32.DLL
0x777E0000 - 0x777E7000 C:\WINNT\system32\VERSION.dll
0x75950000 - 0x75956000 C:\WINNT\system32\LZ32.DLL
0x773A0000 - 0x773B2000 C:\WINNT\System32\ATL.DLL
0x77990000 - 0x77A2B000 C:\WINNT\system32\OLEAUT32.dll
0x72760000 - 0x727A6000 C:\WINNT\System32\ddraw.dll
0x0EC40000 - 0x0EC43000 C:\WINNT\mui\fallback\0804\msctf.dll.mui
0x72C50000 - 0x72CD5000 C:\WINNT\System32\CLBCATQ.DLL
0x77810000 - 0x7784C000 C:\WINNT\System32\cscui.dll
0x77080000 - 0x770A3000 C:\WINNT\System32\CSCDLL.DLL
0x76DB0000 - 0x76DC1000 C:\WINNT\System32\mydocs.dll
0x76C40000 - 0x76D50000 C:\WINNT\System32\SHDOCVW.DLL
0x75010000 - 0x75020000 C:\WINNT\system32\MPR.DLL
0x750F0000 - 0x750FC000 C:\WINNT\System32\ntlanman.dll
0x751A0000 - 0x751B5000 C:\WINNT\System32\NETUI0.DLL
0x75160000 - 0x75198000 C:\WINNT\System32\NETUI1.DLL
0x75100000 - 0x7514F000 C:\WINNT\System32\NETAPI32.DLL
0x77BC0000 - 0x77BCF000 C:\WINNT\System32\SECUR32.DLL
0x75150000 - 0x75156000 C:\WINNT\System32\NETRAP.DLL
0x750E0000 - 0x750F0000 C:\WINNT\System32\SAMLIB.DLL
0x74FB0000 - 0x74FC3000 C:\WINNT\System32\WS2_32.DLL
0x74FA0000 - 0x74FA8000 C:\WINNT\System32\WS2HELP.DLL
0x77930000 - 0x77959000 C:\WINNT\system32\WLDAP32.DLL
0x77960000 - 0x77984000 C:\WINNT\System32\DNSAPI.DLL
0x74FD0000 - 0x74FDA000 C:\WINNT\System32\WSOCK32.DLL
0x76F60000 - 0x76F6F000 C:\WINNT\System32\ntshrui.dll
0x6D130000 - 0x6D152000 D:\j2sdk14\jre\bin\dcpr.dll
0x6D100000 - 0x6D123000 D:\j2sdk14\jre\bin\cmm.dll
0x6D280000 - 0x6D29E000 D:\j2sdk14\jre\bin\jpeg.dll
0x77900000 - 0x77923000 C:\WINNT\system32\imagehlp.dll
0x72960000 - 0x7298D000 C:\WINNT\system32\DBGHELP.dll
0x687E0000 - 0x687EB000 C:\WINNT\System32\PSAPI.DLL

Local Time = Thu Feb 13 23:21:52 2003
Elapsed Time = 106
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.4.0-beta3-b84 mixed mode)
#

保存文件的主要代码如下:

public void saveAsJPG(File file)
throws Exception
{
Iterator writers = ImageIO.getImageWritersByFormatName("jpg");
ImageWriter writer = (ImageWriter)writers.next();

// Once an ImageWriter has been obtained,
// its destination must be set to an ImageOutputStream:
ImageOutputStream ios = ImageIO.createImageOutputStream(file);
writer.setOutput(ios);

// Finally, the image may be written to the output stream:
BufferedImage tbImage=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D bGraphics2d = tbImage.createGraphics();
bGraphics2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
bGraphics2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
//bGraphics2d.setBackground(backgroundColor);
bGraphics2d.setPaint(backgroundColor);
bGraphics2d.fill(new Rectangle(0, 0, width, height));
for(int i=0;i<unitsForFile.size();i++){
SmogUnit temp=(SmogUnit)unitsForFile.elementAt(i);
bGraphics2d.setPaint(temp.color);
bGraphics2d.draw(temp.shape);
}
for(int i=0;i<stringUnitsForFile.size();i++){
SmogStringUnit temp=(SmogStringUnit)stringUnitsForFile.elementAt(i);
bGraphics2d.setPaint(temp.color);
bGraphics2d.drawString(new String(temp.string),temp.x,temp.y);
}
System.out.println("Save as jpg!");
//bImage.flush();
writer.write(tbImage);
System.out.println("Saved ok!");
}

请高手相助,我实在是拿他没办法阿:(
55555555555`~~~~~~~~
...全文
93 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
newman0708 2003-02-22
  • 打赏
  • 举报
回复
学习
colors 2003-02-21
  • 打赏
  • 举报
回复
学习
slare 2003-02-21
  • 打赏
  • 举报
回复
"如果你对image操作的顺序没有的话"
这句话什么意思?
zxhong 2003-02-20
  • 打赏
  • 举报
回复
你可以试一下是不是当jpg大的时候出现错误
小的时候不出现?
xyzxyz1111 2003-02-20
  • 打赏
  • 举报
回复
我看出错信息中已经说了是jpeg.dll中的问题。如果你对image操作的顺序没有的话,应该和你的java程序无关。
着可能是一个bag
可以报告给sun看看
slare 2003-02-20
  • 打赏
  • 举报
回复
一样大的情况下,有时候出错,有时候不会。
slare 2003-02-19
  • 打赏
  • 举报
回复
不会吧,没有一个人知道点点啊。
bluesmile979 2003-02-14
  • 打赏
  • 举报
回复
不会,帮你up,学习。
888888888888 2003-02-14
  • 打赏
  • 举报
回复
强烈关注
cyicecream 2003-02-14
  • 打赏
  • 举报
回复
学习中,UP
study_body 2003-02-14
  • 打赏
  • 举报
回复
学习,这方面还没有接触过。
slare 2003-02-14
  • 打赏
  • 举报
回复
谢谢,UP~:)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧