8

我正在编写一个类来在 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)

有人可以帮忙吗?

4

3 回答 3

18

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

于 2010-12-29T18:39:17.580 回答
11

这不是一个有效的 URL。它可以通过添加file://为协议来使其有效。

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

new InputSource(new FileReader(path))
于 2010-12-29T18:39:01.643 回答
-4

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

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

开始--> Java 配置--> 安全--点击-非常高。

于 2017-02-02T17:34:02.707 回答