Подтвердить что ты не робот

Недопустимый символ в пути по индексу 16

Я получаю следующую ошибку в RAD:

java.net.URISyntaxException: Illegal character in path at index 16: file:/E:/Program Files/IBM/SDP/runtimes/base......

Не могли бы вы сообщить мне, что такое ошибка и как ее решить?

4b9b3361

Ответ 1

В индексе 16 есть незаконный символ. Я бы сказал, что ему не нравится пробел в пути. Вы можете процент кодировать специальные символы, такие как пробелы. В этом случае замените его на %20.

Вопрос, связанный с выше, предполагает использование URLEncoder:

String thePath = "file://E:/Program Files/IBM/SDP/runtimes/base";
thePath = URLEncoder.encode(thePath, "UTF-8"); 

Ответ 2

Я столкнулся с тем же, что и с Bing Map API. URLEncoder только что усугубил ситуацию, но replaceAll(" ","%20"); сделал трюк.

Ответ 3

Вы пробовали это?

new File("<PATH OF YOUR FILE>").toURI().toString();

Ответ 4

У меня была похожая проблема для xml. Просто передайте ошибку и решение (отредактирована версия Jonathon).

Код:

HttpGet xmlGet = new HttpGet( xmlContent );

Формат Xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employee>
    <code>CA</code>
    <name>Cath</name>
    <salary>300</salary>
</employee>

Ошибка:

java.lang.IllegalArgumentException: Illegal character in path at index 0: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<contents>
    <portalarea>CA</portalarea>
    <portalsubarea>Cath</portalsubarea>
    <direction>Navigator</direction>
</contents>
    at java.net.URI.create(URI.java:859)
    at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:69)
    at de.vogella.jersey.first.Hello.validate(Hello.java:56)

Не совсем совершенное Решение: (ошибка исчезла для этого экземпляра)

String theXml = URLEncoder.encode( xmlContent, "UTF-8" );
HttpGet xmlGet = new HttpGet( theXml );

Любая идея Что я должен делать? Он просто очистился, но у него была проблема при выполнении этого

HttpResponse response = httpclient.execute( xmlGet );

Ответ 5

каталог установки не может иметь место. переустановка программного обеспечения исправит его

Ответ 6

Если эта ошибка возникает при использовании jdk, используйте это:

progra ~ 1 вместо файлов программы в примере пути:

 c:/progra~1/java instead of c:/program files/java

Это нормально, всегда избегайте пробела в Java-коде.....

его можно использовать для каждой вещи в программных файлах, иначе вставлять кавычки в начале и en пути

"C:/..../"

Ответ 7

Сегодня я получил эту ошибку, и в отличие от всех вышеперечисленных ответов моя ошибка вызвана новой причиной.

В моем японском файле strings.xml, я удалил нужную строку.

Некоторые, как андроид перепутали всю другую строку, и это вызвало ошибку.

Решение состояло в том, чтобы включить все строки из моей обычной английской строки .xml

Включая те строки, которые не были переведены на японский язык.

Ответ 8

Имела ту же проблему с пробелами. Комбинация URL и URI разрешила это:

URL url = new URL("file:/E:/Program Files/IBM/SDP/runtimes/base");
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());

* Источник: fooobar.com/info/162004/...