java.net.MalformedURLException:没有协议

时间:2010-12-29 18:36:21

标签: java url jaxb xjc

我正在编写一个在java中运行xjc的类。我的代码如下:

 URL url = new URL("C:\\Users\\Simran\\Desktop\\books.xsd"); 
 SchemaCompiler sc = XJC.createSchemaCompiler();
 sc.parseSchema(new InputSource(url.toExternalForm()));
 S2JJAXBModel model = sc.bind();
 JCodeModel cm = model.generateCode(null, null);
 cm.build(new FileCodeWriter(new File("C:\\Users\\Simran\\Desktop\\books.xsd")));

然而,当我运行此命令时出现以下错误:

Exception in thread "main" java.net.MalformedURLException: no protocol: books.xsd
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at jaxbTest.Test1.main(Test1.java:22)

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:16)

尝试将"file://"附加到文件路径的开头。但正如Bozho所建议的那样,你不需要这里的URL。

答案 1 :(得分:10)

这不是有效的网址。它可以通过将file://作为协议预先设置为有效。

但您根本不需要网址。您可以将Reader(以及InputStream)传递给InputSource构造函数。例如:

new InputSource(new FileReader(path))

答案 2 :(得分:-2)

我在打开虚拟控制台时有上述内容。

解决方案:您在浏览器中选择了非常安全的选项。

开始 - &GT; Java配置 - &gt;安全性 - 关闭 - 非常高。