33
URL u=new URL("telnet://route-server.exodus.net");

この行は生成しています:

java.net.MalformedURLException: unknown protocol: telnet

また、「news://」で始まる他のURLでも同様の問題が発生します。

これらはODPから抽出されたURLであるため、なぜこのような例外が発生するのかわかりません。

4

4 に答える 4

53

問題

Javaは、そのプロトコルMalformedURLExceptionのを見つけることができなかったため、をスローします。詳細については、コンストラクターのjavadocsURLStreamHandlerを確認してください。

概要

URLクラスにはメソッドがあるためopenConnection、URLクラスは、Javaが正しいプロトコルの接続を開く方法を認識していることを確認します。そのプロトコルのforがないと、Javaは、を呼び出そうとしたときに失敗からあなたを救うためにURLStreamHandler、の作成を拒否します。URLopenConnection

解決

URIJavaでこれらのプロトコルの接続を開く予定がない場合は、おそらくこのクラスを使用する必要があります。

于 2010-03-09T03:57:10.297 に答える
3

アプリケーションにプロトコル「telnet」の登録済みハンドラーがないようです。URLクラスを使用してInputStreamtoURLを開くことができるため、それを使用してオブジェクトを作成できるようにする場合は、プロトコルがこの作業を行うためのハンドラーを登録する必要があります。

ハンドラーを追加する方法の詳細については、http://docs.oracle.com/javase/7/docs/api/java/net/URLStreamHandlerFactory.htmlを参照してください。

于 2010-03-09T04:01:10.880 に答える
2

簡単な答えは、特定のプロトコルのみを認識し、残りの無限のプロトコルは認識されないということです

于 2010-03-09T05:16:40.387 に答える
2

javaにはtelnet用の標準プロトコルハンドラがないため、このエラーが発生します。

于 2010-03-09T04:02:20.710 に答える