MalformedURLException с файловым URI - PullRequest
2 голосов
/ 26 мая 2010

При выполнении следующего кода:

        doc = builder.parse(file);

, где doc - это экземпляр org.w3c.dom.Document, а builder - это javax.xml.parsers.DocumentBuilder, я получаю следующее исключение:

Exception in thread "main" java.net.MalformedURLException: unknown protocol: c
        at java.net.URL.<init>(Unknown Source)
        at java.net.URL.<init>(Unknown Source)
        at java.net.URL.<init>(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
        at com.acme.ItemToThetaValues.createFiles(ItemToThetaValues.java:47)

Это задыхается в этой строке файла:

<!DOCTYPE questestinterop SYSTEM "C:\Program Files\Acme\parsers\acme_full.dtd">

Я не получаю эту ошибку на своем компьютере, в то время как пользователь получает ее на своем компьютере. Мы оба используем версию 6 Sun JRE. Эта ошибка также возникает, когда он использует двойную обратную косую черту в пути вместо одиночной обратной косой черты и когда он использует прямую косую черту вместо обратной.

Прежде всего, правильный ли XML? Правильно ли указан путь? Во-вторых, почему эта ошибка возникает на одном компьютере, а не на другом?

1 Ответ

1 голос
/ 27 мая 2010

Оказывается, мы не использовали одинаковые версии JRE. Он использовал 1.6.0_06, а я использовал версию Java "1.6.0_20".

Это ошибка в версии 1.6.0_06 JRE .

...