2010-12-29 4 views
4

Ich schreibe eine Klasse, um xjc in Java auszuführen. mein Code sieht wie folgt aus:java.net.MalformedURLException: kein Protokoll

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

aber ich folgende Fehlermeldung erhalten, wenn ich dies auszuführen:

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) 

Kann mir jemand dabei helfen bitte?

+0

Haben Sie versucht 'sc.parseSchema (neue InputSource (" C: \\ Users \\ Simran \\ Desktop \\ books.xsd "));' Wie ich schon vorgeschlagen? –

+0

ya Ich hatte versucht, dies und es hat nicht funktioniert – simran

Antwort

14

"file://" zu Beginn des Dateipfad anhängen Versuchen. Aber wie Bozho vorgeschlagen hat, brauchen Sie hier keine URL.

+0

+1, erwähnt das 'file: //' Protokoll, während ich es zu meiner Antwort hinzugefügt habe :) – Bozho

+0

danke. es funktionierte. – simran

+0

kann jemand mir einen Link für die Verwendung von xjc über API-Aufrufe geben? – simran

9

Dies ist keine gültige URL. Es kann gültig gemacht werden, indem file:// als Protokoll vorangestellt wird.

Sie benötigen jedoch keine URL. Sie können einen Reader (sowie einen InputStream) an den InputSource Konstruktor übergeben. So zum Beispiel:

new InputSource(new FileReader(path)) 
+0

Ich dachte immer, dass es mit drei/s war, wie Datei: ///, aber bin upvoting diese Antwort. auch der richtige Begriff ist nicht anhängig, sondern vorangestellt. –

+0

danke für das "vorpendeln". Es funktioniert auch mit zwei Schrägstrichen, ich bin mir nicht sicher, welches der Standard ist. Ich denke, es wird unabhängig von der Anzahl der Schrägstriche normalisiert. – Bozho

-1

Ich hatte die oben genannten, beim Öffnen der virtuellen Konsole.

Auflösung: Sie haben sehr sichere Option im Browser ausgewählt.

Start -> Java-Konfiguration -> Sicherheit - Einschalten - Sehr hoch.

Verwandte Themen