web-dev-qa-db-ja.com

java.net.MalformedURLException:プロトコルなし

私は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)

誰かがこれを手伝ってもらえますか?

8
simran

これは有効なURLではありません。プロトコルとしてfile://を付加することで有効にできます。

ただし、URLはまったく必要ありません。 Reader(およびInputStream)をInputSourceコンストラクターに渡すことができます。したがって、たとえば:

new InputSource(new FileReader(path))
10
Bozho