我正在编写一个在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)
有人可以帮忙吗?
答案 0 :(得分:16)
尝试将"file://"
附加到文件路径的开头。但正如Bozho所建议的那样,你不需要这里的URL。
答案 1 :(得分:10)
这不是有效的网址。它可以通过将file://
作为协议预先设置为有效。
但您根本不需要网址。您可以将Reader
(以及InputStream
)传递给InputSource
构造函数。例如:
new InputSource(new FileReader(path))
答案 2 :(得分:-2)
我在打开虚拟控制台时有上述内容。
解决方案:您在浏览器中选择了非常安全的选项。
开始 - &GT; Java配置 - &gt;安全性 - 关闭 - 非常高。