»»

java.net errorsJava Runtime

Top patterns

  1. The class could not be found

    This error pattern looks similar to error pattern 88439.

    However, in this case, we are sure that this happens when sun.misc.URLClassPath.getResource(String name, boolean check) returns null. Practically every exception that happens in getResource is handled by returning null.

  2. A class is not available on the classpath or the class loader is closed

    java.lang.ClassNotFoundException is one of the most frequent exceptions in Java. It is a runtime error, however, it does not signal a bug in your application logic, but rather an issue with the environment (build system, dependency management, runtime environment, etc.)

    According to the javadoc, it "is thrown when an application tries to load in a class through its string name". There are several different situations leading to this error and you have to examine the stack trace thoroughly to be able to decide how to solve this problem.

    The first thing to check is whether you get this checked exception directly, or wrapped in a java.class.NoClassDefFoundException. The latter happens when the class not found was resolved during compilation time, but not found during runtime, which is a bit different than the first case and it needs special care. If this is what happened to you, then you should read that article (coming soon).

    Next we ask what is the class that was not found. Fortunately, in most cases, you can see it in the message of the exception. If this class was specified by you (either directly in the code, or via a configuration file), double check that you did not misspell it. Some practical advices:

    • Make sure you use the fully qualified name of the class (e.g. org.postgresql.ds.PGSimpleDataSource)
    • When loading a nested class, make sure you use the proper name (joined with a $ sign, e.g. test.MyClass$InnerClass).
    • If you are unsure, you can check the name of the class in the code by using MyClass.class.getName()

    If none of the above helped then you have an issue with your classpath, which requires some time and experience to resolve. When the java.lang.ClassNotFoundException is related to a third party library, you might want to ask for help in their support forums. However, if you want to debug it yourself, let me equip you with some theoretical and practical knowledge.

    • To understand what is class loading in Java, start with this StackOverflow question or the Java Language Specification §12.2. Roughly speaking, the classes that your application use are located in jar files on the file system. The classpath is a list of jar files which are searched through when your application loads a class. The java.lang.ClassNotFoundException means that the class you wanted to load is not present in any of the jar files on the classpath.
    • The configuration of your classpath depends on your runtime environment (i.e. do you run the application from console, from IDE, web container, etc), you can find more information on the specific forums. However, if you can use breakpoints to stop at specific points in your application, stop at the first line of java.net.URLClassLoader.findClass and check the value of the field ucp.
    • You should have an idea on which jar file contains the class that could not be loaded, and look for that jar in the classpath. If it is not there, you have to add that jar to the classpath (precise details depend on the runtime environment).
    • If you find the jar you suspect to contain your class, check if it is true by opening the jar file (they are simple zip files actually) and look for the class definition in the directory structure in it (the directory structure must be identical to the package structure of the java code). At this point you should realize that the class is not present, otherwise the problem would have been found previously during debugging.
    • There are two reasons for class not being present in the jar: the first is that you have an incorrect version of the library you wanted to use. To fix this, you have to tweak your build system (maven, ant, sbt, gradle etc) by making sure that you configured the right version of the library as the dependency, and that you don’t have conflicting library versions. To find out how to do this, look for help on the forums of that build system.
    • The other reason of the class not being present is that it’s a bug in that library. If this is a third-party library, you might want to check the support forum and the release notes. If this library was written by you, then try to rebuild this library and check if the class you look for is present in the resulting jar file.
  3. Client cannot establish connection with the server

    Roughly there are three categories of this problem:

    • no network available: Probably your machine's network interface is down. Check if you have internet and your application has permissions to use the network interface
    • connection refused: The address you are trying to connect is not listening. Check if you did not misspelled the host or the port. Also verify that the server you are trying to reach is actually running and listening.
    • connection timed out: The server took too much time to respond. You either have to increase the timeout limit or speed up the server.
Error patternsClassesMethodsExceptions
DescriptionException TypeEntry MethodWeb pages

The class could not be found

java.lang.ClassNotFoundException
java.net.URLClassLoader.findClass
7019Web pages
1Solution
ClassNotFoundExceptionURLClassLoader.findClass7019

A class is not available on the classpath or the class loader is closed

java.lang.ClassNotFoundException
2 frames hidden
java.net.URLClassLoader.findClass
6463Web pages
1Solution
ClassNotFoundExceptionURLClassLoader.findClass6463

Client cannot establish connection with the server

java.net.ConnectException
java.net.PlainSocketImpl.socketConnect
4825Web pages
1Solution
ConnectExceptionPlainSocketImpl.socketConnect4825

Unable to read from socket, server disconnected abruptly

java.net.SocketException
java.net.SocketInputStream.read
2005Web pages
SocketExceptionSocketInputStream.read2005

Client unable to complete writing request, network issue or server disconnected abruptly

java.net.SocketException
java.net.SocketOutputStream.socketWrite0
1837Web pages
SocketExceptionSocketOutputStream.socketWrite01837

Connection timed out while trying to read from a socket

java.net.SocketTimeoutException
java.net.SocketInputStream.socketRead0
1550Web pages
1Solution
SocketTimeoutExceptionSocketInputStream.socketRead01550

URL not properly encoded or incorrect URL format

java.net.MalformedURLException
java.net.URL.<init>
1184Web pages
MalformedURLExceptionURL.<init>1184

Port already in use

java.net.BindException
java.net.PlainSocketImpl.socketBind
1023Web pages
BindExceptionPlainSocketImpl.socketBind1023

URI parsing failed due to un-encoded url string

java.net.URISyntaxException
java.net.URI$Parser.fail
799Web pages
1Solution
URISyntaxExceptionURI$Parser.fail799

AbstractPlainSocketImpl.connect() has thrown an UnknownHostException

java.net.UnknownHostException
java.net.AbstractPlainSocketImpl.connect
636Web pages
UnknownHostExceptionAbstractPlainSocketImpl.connect636

SocketOutputStream.socketWrite() has thrown a SocketException

java.net.SocketException
java.net.SocketOutputStream.socketWrite
584Web pages
SocketExceptionSocketOutputStream.socketWrite584

PlainSocketImpl.connect() has thrown an UnknownHostException

java.net.UnknownHostException
java.net.PlainSocketImpl.connect
556Web pages
UnknownHostExceptionPlainSocketImpl.connect556

Unable to resolve hostname while performing DNS lookup

java.net.UnknownHostException
java.net.Inet6AddressImpl.lookupAllHostAddr
507Web pages
UnknownHostExceptionInet6AddressImpl.lookupAllHostAddr507

InetAddress.getAllByName0() has thrown an UnknownHostException

java.net.UnknownHostException
java.net.InetAddress.getAllByName0
377Web pages
UnknownHostExceptionInetAddress.getAllByName0377

PlainSocketImpl.socketConnect() has thrown a SocketTimeoutException

java.net.SocketTimeoutException
java.net.PlainSocketImpl.socketConnect
369Web pages
SocketTimeoutExceptionPlainSocketImpl.socketConnect369

PlainSocketImpl.socketConnect() has thrown a SocketException

java.net.SocketException
java.net.PlainSocketImpl.socketConnect
315Web pages
SocketExceptionPlainSocketImpl.socketConnect315

PlainSocketImpl.socketAccept() has thrown a SocketException

java.net.SocketException
java.net.PlainSocketImpl.socketAccept
284Web pages
SocketExceptionPlainSocketImpl.socketAccept284

PlainSocketImpl.socketConnect() has thrown a NoRouteToHostException

java.net.NoRouteToHostException
java.net.PlainSocketImpl.socketConnect
264Web pages
NoRouteToHostExceptionPlainSocketImpl.socketConnect264

InetAddress.getLocalHost() has thrown an UnknownHostException

java.net.UnknownHostException
java.net.InetAddress.getLocalHost
223Web pages
1Solution
UnknownHostExceptionInetAddress.getLocalHost223

URI.create() has thrown an IllegalArgumentException

java.lang.IllegalArgumentException
java.net.URI.create
210Web pages
IllegalArgumentExceptionURI.create210

SocketInputStream.socketRead() has thrown a SocketException

java.net.SocketException
java.net.SocketInputStream.socketRead
192Web pages
SocketExceptionSocketInputStream.socketRead192

Android DNS unable to lookup host by name

java.net.UnknownHostException
java.net.InetAddress.lookupHostByName
166Web pages
1Solution
UnknownHostExceptionInetAddress.lookupHostByName166

Inet4AddressImpl.lookupAllHostAddr() has thrown an UnknownHostException

java.net.UnknownHostException
java.net.Inet4AddressImpl.lookupAllHostAddr
145Web pages
UnknownHostExceptionInet4AddressImpl.lookupAllHostAddr145

PlainDatagramSocketImpl.send() has thrown an IOException

java.io.IOException
java.net.PlainDatagramSocketImpl.send
145Web pages
IOExceptionPlainDatagramSocketImpl.send145

HttpURLConnection.getResponseCode() has thrown an IOException

java.io.IOException
1 frames hidden
java.net.HttpURLConnection.getResponseCode
143Web pages
IOExceptionHttpURLConnection.getResponseCode143

PlainSocketImpl.read() has thrown a SocketTimeoutException

java.net.SocketTimeoutException
java.net.PlainSocketImpl.read
139Web pages
SocketTimeoutExceptionPlainSocketImpl.read139

SocketInputStream.socketRead0() has thrown a WebServiceException

javax.xml.ws.WebServiceException
java.net.SocketInputStream.socketRead0
137Web pages
WebServiceExceptionSocketInputStream.socketRead0137

URL.openStream() has thrown an IOException

java.io.IOException
1 frames hidden
java.net.URL.openStream
137Web pages
IOExceptionURL.openStream137

PlainDatagramSocketImpl.join() has thrown a SocketException

java.net.SocketException
java.net.PlainDatagramSocketImpl.join
117Web pages
SocketExceptionPlainDatagramSocketImpl.join117

PlainSocketImpl.socketBind() has thrown a SocketException

java.net.SocketException
java.net.PlainSocketImpl.socketBind
116Web pages
SocketExceptionPlainSocketImpl.socketBind116

Socket.createImpl() has thrown a SocketException

java.net.SocketException
java.net.Socket.createImpl
101Web pages
SocketExceptionSocket.createImpl101

PlainDatagramSocketImpl.bind0() has thrown a BindException

java.net.BindException
java.net.PlainDatagramSocketImpl.bind0
97Web pages
BindExceptionPlainDatagramSocketImpl.bind097

URLClassLoader$1.run() has thrown a NoClassDefFoundError

java.lang.NoClassDefFoundError
java.net.URLClassLoader$1.run
94Web pages
NoClassDefFoundErrorURLClassLoader$1.run94

URLEncoder.encode() has thrown a NullPointerException

java.lang.NullPointerException
java.net.URLEncoder.encode
92Web pages
NullPointerExceptionURLEncoder.encode92

URLDecoder.decode() has thrown an IllegalArgumentException

java.lang.IllegalArgumentException
java.net.URLDecoder.decode
91Web pages
IllegalArgumentExceptionURLDecoder.decode91

PlainSocketImpl.socketAccept() has thrown a SocketTimeoutException

java.net.SocketTimeoutException
java.net.PlainSocketImpl.socketAccept
90Web pages
SocketTimeoutExceptionPlainSocketImpl.socketAccept90

SocketOutputStream.socketWrite() has thrown an IOException

java.io.IOException
java.net.SocketOutputStream.socketWrite
89Web pages
IOExceptionSocketOutputStream.socketWrite89

URLClassLoader.defineClass() has thrown a SecurityException

java.lang.SecurityException
java.net.URLClassLoader.defineClass
79Web pages
SecurityExceptionURLClassLoader.defineClass79

URI.checkPath() has thrown an URISyntaxException

java.net.URISyntaxException
java.net.URI.checkPath
78Web pages
URISyntaxExceptionURI.checkPath78

URI$Parser.parse() has thrown a NullPointerException

java.lang.NullPointerException
java.net.URI$Parser.parse
71Web pages
NullPointerExceptionURI$Parser.parse71

URI.toURL() has thrown an IllegalArgumentException

java.lang.IllegalArgumentException
java.net.URI.toURL
70Web pages
IllegalArgumentExceptionURI.toURL70

InetSocketAddress.<init>() has thrown an IllegalArgumentException

java.lang.IllegalArgumentException
java.net.InetSocketAddress.<init>
70Web pages
IllegalArgumentExceptionInetSocketAddress.<init>70

SocketInputStream.socketRead() has thrown an InterruptedIOException

java.io.InterruptedIOException
java.net.SocketInputStream.socketRead
68Web pages
InterruptedIOExceptionSocketInputStream.socketRead68

PlainSocketImpl.socketConnect() has thrown a BindException

java.net.BindException
java.net.PlainSocketImpl.socketConnect
68Web pages
BindExceptionPlainSocketImpl.socketConnect68

SocksSocketImpl.connect() has thrown a SocketException

java.net.SocketException
java.net.SocksSocketImpl.connect
64Web pages
SocketExceptionSocksSocketImpl.connect64

URLClassLoader.findClass() has thrown a ClassNotFoundException

java.lang.ClassNotFoundException
1 frames hidden
java.net.URLClassLoader.findClass
63Web pages
ClassNotFoundExceptionURLClassLoader.findClass63

URLClassLoader.findClass() has thrown a Throwable

java.lang.Throwable
java.net.URLClassLoader.findClass
62Web pages
ThrowableURLClassLoader.findClass62

URLClassLoader$1.run() has thrown a Throwable

java.lang.Throwable
java.net.URLClassLoader$1.run
62Web pages
ThrowableURLClassLoader$1.run62

URLClassLoader.access$000() has thrown a Throwable

java.lang.Throwable
java.net.URLClassLoader.access$000
62Web pages
ThrowableURLClassLoader.access$00062

URLClassLoader.defineClass() has thrown a Throwable

java.lang.Throwable
java.net.URLClassLoader.defineClass
62Web pages
ThrowableURLClassLoader.defineClass62
Nothing to list here.
Nothing to list here.
Nothing to list here.