java.net.UnknownHostException: C (sous windows)

Publié le 3 Février 2010

Avec tomcat je rencontre l'exception java.net.UnknownHostException: C quand j'essaie de faire un java.net.PlainSocketImpl.connect().

java.net.UnknownHostException: C at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:153) at java.net.Socket.connect(Socket.java:452) at java.net.Socket.connect(Socket.java:402) at ...

L'url est un fait un nom de fichier sous windows, c'est à dire quelque chose dans ce gout-là:

C:/monChemin/monFichier

Le problème est que le parser java attend une url de la forme :

protocole://hostname/File

Donc dans ce cas java croit que le protocol est "C" (d'où le "C" dans l'exeption ;-).

Comme il s'agit d'un accès direct à un fichier, on peut utiliser le protocol "File" ou bien écrire directement le chemin (comme ce que j'avais essayé de faire).
Mais tous les chemins doivent commencer par un "/" (et oui même sous windows), ce qui donne:

/C:/monChemin/monFichier

ou

File:///C:/monChemin/monFichier

Attention il y a bien 3 "/" ici:
 - 2 pour pour le protocole "File://"
 - 1 pour le chemin "/C:/..."

Petite explication: Normalement c'est le hostname qui se trouve entre le 2ème et le 3ème "/" mais comme il n'y en a pas ici, les 3 "/" se suivent directement.

Rédigé par Bliz

Publié dans #Java

Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article