java.net.MalformedURLException: нет протокола - PullRequest
7 голосов
/ 29 декабря 2010

Я пишу класс для запуска xjc в Java.мой код выглядит следующим образом:

 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 ]

16 голосов
/ 29 декабря 2010

Попробуйте добавить "file://" в начало вашего пути к файлу.Но, как предложил Божо, вам здесь не нужен URL.

10 голосов
/ 29 декабря 2010

Это недействительный URL.Чтобы сделать его действительным, добавьте file:// в качестве протокола.

Но вам вообще не нужен URL.Вы можете передать Reader (а также InputStream) в конструктор InputSource.Так, например:

new InputSource(new FileReader(path))
0 голосов
/ 02 февраля 2017

У меня было выше, при открытии виртуальной консоли.

Разрешение: вы выбрали очень безопасный вариант в браузере.

Пуск -> Конфигурация Java -> Безопасность - Силикон включен - Очень высокий.

...