Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Windows中的蜡染URL异常_Java_Windows_Svg_Batik - Fatal编程技术网

Java Windows中的蜡染URL异常

Java Windows中的蜡染URL异常,java,windows,svg,batik,Java,Windows,Svg,Batik,我正在开发这个程序,它可以手动解析和更改svg文件,而我只使用Batik来创建有关svg文件的预览 它应该读取目录中的所有SVG文件,并显示我正在使用的Batik图像以及我在网上找到的转码器类,作为前一段时间另一个程序的建议: public class BufferedImageTranscoder extends ImageTranscoder { private BufferedImage image = null; @Override

我正在开发这个程序,它可以手动解析和更改svg文件,而我只使用Batik来创建有关svg文件的预览

它应该读取目录中的所有SVG文件,并显示我正在使用的Batik图像以及我在网上找到的转码器类,作为前一段时间另一个程序的建议:

public class BufferedImageTranscoder extends ImageTranscoder {
        private BufferedImage image = null;     
        @Override
        public BufferedImage createImage(int weight, int height)
        {
            return new BufferedImage(weight, height, BufferedImage.TYPE_INT_ARGB);
        }   
        @Override
        public void writeImage(BufferedImage image, TranscoderOutput output) throws TranscoderException
        {
            this.image = image;
        }
        public BufferedImage getBufferedImage()
        {
            return image;
        }

        public static BufferedImage loadImage(File svgFile, float width, float height) {
            BufferedImageTranscoder imageTranscoder = new BufferedImageTranscoder();
            imageTranscoder.addTranscodingHint(PNGTranscoder.KEY_WIDTH, width);
            imageTranscoder.addTranscodingHint(PNGTranscoder.KEY_HEIGHT, height);
            try {
                String path = svgFile.getCanonicalPath();
                System.out.println(path);
                TranscoderInput input = new TranscoderInput(path);
                if(input != null)
                    imageTranscoder.transcode(input, null);
            } catch (TranscoderException e) {
                e.printStackTrace();
                return null;
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
            return imageTranscoder.getBufferedImage();
        }
}
在macOS上,这个程序似乎工作得很好,没有问题,但当我在Windows中将项目加载到Eclipse中时,我遇到了以下异常:

附带的异常:无法理解位于的连接的URL org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:136) 在 org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)


知道是什么原因导致了这种情况,以及我如何修复它吗?

可能您在尝试加载的文件的路径/名称方面有一些问题。我发现对TranscodeInput类使用InputStream构造函数会使异常消失,所以至少我发现svg文件中的workaround.url有问题。