title: I got `NoClassDefFoundError` on one machine but the same jar works fine on another machine
body: <p>I have packaged my netty project as a jar, and it works fine locally and on one server, but it will throw <code>java.lang.NoClassDefFoundError</code> exception on another one. Furthermore, if I start the jar with <code>java</code> from jre instead of <code>java</code> comes with jdk (same version), it works again.</p>
  <p>If this jar works somewhere, it means the jar has already had the required classes packaged, then what might cause the problem?</p>
  <pre><code>2022-06-30 10:58:11 WARN  [io.netty.channel.DefaultChannelPipeline] : An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
  java.lang.NoClassDefFoundError: Could not initialize class com.baidu.bjf.remoting.protobuf.utils.JDKCompilerHelper
          at com.baidu.bjf.remoting.protobuf.ProtobufProxy.doCreate(ProtobufProxy.java:397)
          at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:311)
          at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:276)
          at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:249)
          at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:208)
          at com.wjserver.ws.codec.ProtobufDecoder.decode(ProtobufDecoder.java:23)
          at com.wjserver.ws.codec.ProtobufDecoder.decode(ProtobufDecoder.java:40)
          at com.wjserver.ws.handler.WebSocketInHandler.channelRead0(WebSocketInHandler.java:41)
  </code></pre>
  <p>...</p>