java - normal - Carácter ilegal en la ruta en el índice 16
get internal storage directory android (8)
Esta pregunta ya tiene una respuesta aquí:
- Cómo lidiar con la URISyntaxException 9 respuestas
Estoy recibiendo el siguiente error en RAD:
java.net.URISyntaxException: Illegal character in path at index 16: file:/E:/Program Files/IBM/SDP/runtimes/base......
¿Podría, por favor, hacerme saber cuál es el error y cómo resolverlo?
¿Has intentado esto?
new File("<PATH OF YOUR FILE>").toURI().toString();
El directorio de instalación no puede tener espacio. reinstalar el software lo corregirá
Hay un carácter ilegal en el índice 16. Diría que no le gusta el espacio en el camino. Puedes porcentual codificar caracteres especiales como espacios. Reemplácelo con un% 20 en este caso.
La pregunta a la que he vinculado anteriormente sugiere usar URLEncoder :
String thePath = "file://E:/Program Files/IBM/SDP/runtimes/base";
thePath = URLEncoder.encode(thePath, "UTF-8");
Me encontré con lo mismo con la API de Bing Map. URLEncoder acaba de empeorar las cosas, pero se replaceAll(" ","%20");
a replaceAll(" ","%20");
Hizo el truco.
Recibí este error hoy y, a diferencia de todas las respuestas anteriores, mi error se debió a una nueva razón.
En mi archivo de traducción japonesa strings.xml, había eliminado una cadena requerida.
Algunos cómo Android mezcló todas las otras cadenas y esto causó un error.
La solución fue incluir todas las cadenas de mis cadenas normales en inglés.xml
Incluyendo aquellas cadenas que no fueron traducidas al japonés.
Si se produce este error con jdk, use esto:
progra ~ 1 en lugar de archivos de programa en el ejemplo de ruta:
c:/progra~1/java instead of c:/program files/java
Estará bien, siempre evite el espacio en el código de Java .....
se puede usar para cada cosa en los archivos de programa, de lo contrario ponga comillas al principio y en la ruta de acceso
"do:/..../"
Tuve el mismo problema con los espacios. Combinación de URL y URI lo resolvió:
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());
* Fuente: https://.com/a/749829/435605
Tuve un problema similar para xml . Solo pasando el error y la solución (editado versión Jonathon).
Código:
HttpGet xmlGet = new HttpGet( xmlContent );
Formato Xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employee>
<code>CA</code>
<name>Cath</name>
<salary>300</salary>
</employee>
Error:
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)
No es exactamente la solución perfecta: (el error desapareció para esa instancia)
String theXml = URLEncoder.encode( xmlContent, "UTF-8" );
HttpGet xmlGet = new HttpGet( theXml );
Alguna idea de lo que debería estar haciendo? Acaba de ser aprobado pasado pero tuvo problemas al hacer esto
HttpResponse response = httpclient.execute( xmlGet );