无法理解用于连接读取 svg 文件的 URL

我有一个 Spring Boot v2.1.2.RELEASE 应用程序。我有一个文件 ../src/main/resources/icons/128/black/ae.png


我想阅读,但出现错误:无法理解连接的 URL


@SpringBootApplication

public class SvgManagerApplication implements CommandLineRunner {


    public static void main(String[] args) {

        SpringApplication.run(SvgManagerApplication.class, args);

    }



    @Override

    public void run(String... args) throws Exception {      


        try {


            String parser = XMLResourceDescriptor.getXMLParserClassName();

            SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);

            Document doc = f.createDocument("classpath:icons/128/black/ae.svg");


            System.out.println(doc);


        } catch (IOException ex) {


            System.out.println(ex.getMessage());


        }

    }

}


慕盖茨4494581
浏览 188回答 2
2回答

MMMHUHU

您可以尝试通过这种方式获取路径:String path = SvgManagerApplication.class.getClassLoader().getResource("icons/128/black/ae.svg").getPath();

牛魔王的故事

您正在混合两种不同的框架;classpath:与 Spring 有关,而SAXSVGDocumentFactory似乎与蜡染有关(https://xmlgraphics.apache.org/batik/javadoc/org/apache/batik/anim/dom/SAXSVGDocumentFactory.html)你可以这样做:@SpringBootApplicationpublic class SvgManagerApplication implements CommandLineRunner {    public static void main(String[] args) {        SpringApplication.run(SvgManagerApplication.class, args);    }    @Override    public void run(String... args) throws Exception {              try {        Resource svg = new ClassPathResource("icons/128/black/ae.png");             String parser = XMLResourceDescriptor.getXMLParserClassName();            SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);            Document doc = f.createDocument(SVG_DOCUMENT_URI, svg.getInputStream());            System.out.println(doc);        } catch (IOException ex) {            System.out.println(ex.getMessage());        }    }}有关 Resource 的更多信息可以在这里找到https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/io/Resource.html,而有关 ClassPathResource 的更多信息可以找到这里https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/io/ClassPathResource.html
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java