用java+flex做了一个拍照的小软件,在自己电脑上OK的,装到其它机器上拍照时报以下 错误。
网上都是说JSP+tomcat遇到该异常如何处理,但是未用到这些,有其他解决方案么?提点下小弟。javax.imageio.IIOException: Can't create output stream!
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at javax.imageio.ImageIO.write(ImageIO.java:1574)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at znet.web.service.PersonService.savePersonPhotoById(PersonService.java:1049)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at znet.web.service.pac.PersonServicePackage.savePersonPhotoById(PersonServicePackage.java:411)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at java.lang.reflect.Method.invoke(Method.java:601)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at znet.web.parse.ParseUtil.parse(ParseUtil.java:38)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at znet.web.parse.ParseFlexData.parse(ParseFlexData.java:48)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at znet.web.parse.ParseData.parseCommand(ParseData.java:16)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at znet.web.server.ClientThread.run(ClientThread.java:30)
INFO   | jvm 1    | 2013/01/25 16:09:09 | Caused by: javax.imageio.IIOException: Can't create cache file!
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:423)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at javax.imageio.ImageIO.write(ImageIO.java:1572)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  ... 10 more
INFO   | jvm 1    | 2013/01/25 16:09:09 | Caused by: java.io.IOException: 系统找不到指定的路径。
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at java.io.WinNTFileSystem.createFileExclusively(Native Method)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at java.io.File.createTempFile(File.java:1879)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at javax.imageio.stream.FileCacheImageOutputStream.<init>(FileCacheImageOutputStream.java:86)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at com.sun.imageio.spi.OutputStreamImageOutputStreamSpi.createOutputStreamInstance(OutputStreamImageOutputStreamSpi.java:68)
INFO   | jvm 1    | 2013/01/25 16:09:09 |  at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:419)javaflex保存照片 socket

解决方案 »

  1.   

    1、看一下你的其它机器有没有jdk?没有的话,java运行不了.
    2、网上搜的,供参考.
    http://blog.csdn.net/cuker919/article/details/6185660
      

  2.   

    不是这个问题,肯定有JDK啊。其它的功能都没问题。 实在是蛋疼啊 。 
      

  3.   

    PersonServicePackage.java,能否看下这个类呢。
      

  4.   

    http://blog.csdn.net/feng_sundy/article/details/1542854按这个修改下看哈。
      

  5.   

    最后一行
    ImageIO.write(image, "jpeg", response.getOutputStream());修改为
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(response.getOutputStream());
    encoder.encode(image);
    以上方式我这弄不了,应为没有用JSP,不能为了解决这个问题整个tomcat服务器。谢谢各位的解答,问题我解决了。
    ImageIO.write(img, "jpg", bao)方法会生成临时文件,这个临时文件产生的路径,java会调用C的本地方法。因此可以说与系统相关。
    我查了下源码和java的API,找到了方法ImageIO.setUseCache(false);
    这个设置后,不启用缓存,直接就生成照片了,到这问题就解决了。分就分给2位了。