Java의 URL 클래스가 특정 프로토콜을 인식하지 못하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2406518

문제

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

이 라인은 생성됩니다.

java.net.malformedurlexception : 알 수없는 프로토콜 : Telnet

그리고 "뉴스 : //"로 시작하는 다른 URL과 비슷한 문제가 발생합니다.

이것들은 ODP에서 추출한 URL이므로 그러한 예외가 발생하는 이유를 이해하지 못합니다 ..

도움이 되었습니까?

해결책

문제

Java는 던졌습니다 MalformedURLException 그것을 찾을 수 없기 때문에 URLStreamHandler 그 프로토콜을 위해. 을 체크하다 Javadocs 세부 사항에 대한 생성자의.

요약:

이후 URL 클래스는 다음과 같습니다 openConnection 방법, URL 클래스는 Java가 올바른 프로토콜의 연결을 열는 방법을 알고 있는지 확인합니다. a URLStreamHandler 이 프로토콜의 경우 Java는 a URL 전화를 시도 할 때 실패에서 벗어나기 위해 openConnection.

해결책

당신은 아마도 사용해야합니다 URI 클래스 Java에서 해당 프로토콜을 연결할 계획이없는 경우.

다른 팁

응용 프로그램에 프로토콜 "Telnet"에 대한 등록 된 핸들러가없는 것 같습니다. URL 클래스를 사용하여 URL에 대한 입력 스트림을 열 수 있으므로,이 작업을 사용하여 객체를 만들 수있는 경우 프로토콜 이이 작업을 수행하려면 등록 된 핸들러가 있어야합니다.

핸들러를 추가하는 방법에 대한 자세한 내용은 다음을 참조하십시오. http://docs.oracle.com/javase/7/docs/api/java/net/urlstreamhandlerfactory.html

Java는 표준이 없기 때문에 그 오류가 발생하고 있습니다. 프로토콜 핸들러 Telnet의 경우.

간단한 대답은 그것 만 있다는 것입니다 하다 특정 프로토콜을 인식하고 나머지 프로토콜의 무한대는 인식되지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top