java.net.MalformedURLException: no protocol

2019-06-17 11:43发布

问题:

I' m writing a class to run xjc in java. my code goes as follows:

 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")));

however I get the following error when I run this:

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)

Can anyone help with this please?

回答1:

Try append "file://" to the beginning of your file path. But as Bozho proposed, you don't need an URL here.



回答2:

This is not a valid URL. It can be made valid by prepending file:// as protocol.

But you don't need a URL at all. You can pass a Reader (as well as an InputStream) to the InputSource constructor. So for example:

new InputSource(new FileReader(path))


回答3:

I had the above ,while opening the virtual console.

Resolution : You have select very secure option in Browser.

Start--> Java configuration -->Security --Cilick on - Very High.



标签: java url jaxb xjc