4

次のコードは、以下の例外をスローしています。

URL u = new URL("file://D:/abc.xml");
InputStream input = u.openStream();

スローされた例外:

Exception in thread "main" java.net.UnknownHostException: D
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.NetworkClient.openServer(NetworkClient.java:118)
at sun.net.ftp.FtpClient.openServer(FtpClient.java:488)
at sun.net.ftp.FtpClient.openServer(FtpClient.java:475)
at sun.net.www.protocol.ftp.FtpURLConnection.connect(FtpURLConnection.java:270)
at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(FtpURLConnection.java:352)
at java.net.URL.openStream(URL.java:1010)
at com.nuance.nlu.JavaApiExmaple.main(Exmaple.java:191)
ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
JDWP exit error AGENT_ERROR_NO_JNI_ENV(183):  [../../../src/share/back/util.c:820]

ただし、次を使用する場合:

  • URL u = new URL("file:///D:/abc.xml");(ファイルの後に 3 つのスラッシュ)、または:
  • URL u = new URL("file:/D:/abc.xml");(ファイルの後に 1 つのスラッシュ :)

コード行は正常にInputStream input = u.openStream(); 実行されます。

4

1 に答える 1

5

最初に参照してください:ファイルの URL が 3 つのスラッシュで始まる理由は何ですか: 「file:///」など? 詳細な説明については。

その答えからの抜粋:

完全な構文は次のとおりですfile://host/path

ホストが の場合はlocalhost省略でき、結果は になりfile:///pathます。

于 2012-06-07T09:53:41.893 に答える