简体   繁体   English

java.lang.NoClassDefFoundError:org / jboss / netty / channel / ChannelFactory

[英]java.lang.NoClassDefFoundError: org/jboss/netty/channel/ChannelFactory

I'm making an app with Netty and ant. 我正在用Netty和ant制作应用程序。 When I compile it, there is no error. 当我编译它时,没有错误。 But when I try to run the jar file, it gets these message: 但是,当我尝试运行jar文件时,它会收到以下消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/jboss/netty/channel/ChannelFactory
Caused by: java.lang.ClassNotFoundException: org.jboss.netty.channel.ChannelFactory
        at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: org.darkquest.gs.Server. Program will exit.

This is my build.xml my project: 这是我的build.xml我的项目:

<project default="compile" basedir=".">

        <property name="src" location="src" />
        <property name="build" location="build" />
        <property name="doc" location="doc" />
        <property name="lib" location="lib" />
        <property name="jar" location="runescape.jar" />

        <target name="compile">
                <delete file="${jar}" />
                <delete dir="${build}" />
                <mkdir dir="${build}"/>
                <javac srcdir="${src}" destdir="${build}" debug="on">
                  <compilerarg value="-Xlint:unchecked"/>
                  <classpath>
                        <pathelement location="${lib}/mina.jar" />
                        <pathelement location="${lib}/netty.jar" />
                        <pathelement location="${lib}/xpp3.jar" />
                        <pathelement location="${lib}/slf4j.jar"/>
                        <pathelement location="${lib}/xstream.jar"/>
                        <pathelement location="${lib}/mysql-connector.jar" />
                        <pathelement location="${lib}/hex-string.jar" />
                        <pathelement path="${java.class.path}/"/>
                  </classpath>
                </javac>
                <jar basedir="${build}" destfile="${jar}" >
                        <manifest>
                                <attribute name="Main-Class" value="org.darkquest.gs.Server" />
                        </manifest>
                </jar>
        </target>

        <target name="doc" depends="compile">
                <javadoc sourcepath="${src}" destdir="${doc}" verbose="on" />
        </target>

        <target name="runls">
                <java classname="org.darkquest.ls.Server" fork="true">
                        <jvmarg value="-Xms128m" />
                        <jvmarg value="-Xmx512m" />
                        <arg value="ls.conf" />
                        <classpath>
                                <pathelement location="${lib}/mina.jar" />
                                <pathelement location="${lib}/netty.jar" />
                                <pathelement location="${lib}/xpp3.jar" />
                                <pathelement location="${lib}/slf4j.jar"/>
                                <pathelement location="${lib}/xstream.jar"/>
                                <pathelement location="${lib}/mysql-connector.jar" />
                                <pathelement location="${lib}/hex-string.jar" />
                                <pathelement path="${jar}/" />
                        </classpath>
                </java>
        </target>

        <target name="runserver">
                <java classname="org.darkquest.gs.Server" fork="true">
                        <jvmarg value="-Xms128m" />
                        <jvmarg value="-Xmx512m" />
                        <arg value="server.conf" />
                        <arg value="f2p" />
                        <arg value="no" />
                        <classpath>
                                <pathelement location="${lib}/mina.jar" />
                                <pathelement location="${lib}/xpp3.jar" />
                                <pathelement location="${lib}/netty.jar" />
                                <pathelement location="${lib}/slf4j.jar"/>
                                <pathelement location="${lib}/xstream.jar"/>
                                <pathelement location="${lib}/mysql-connector.jar" />
                                <pathelement location="${lib}/hex-string.jar" />
                                <pathelement path="${jar}/" />
                        </classpath>
                </java>
        </target>

</project>

And these are the jars of the netty library: 这些是netty库的jar:

ls -la /usr/share/java/netty*
-rw-r--r-- 1 root root 1118026 2012-06-24 15:29 /usr/share/java/netty-3.5.1.Final.jar
lrwxrwxrwx 1 root root      37 2012-07-02 01:31 /usr/share/java/netty.jar -> /usr/share/java/netty-3.5.1.Final.jar
ls -la lib/
total 4904
drwxrwxrwx 1 user user    4096 2012-07-02 01:49 .
drwxr-xr-x 1 user user    4096 2012-07-02 02:21 ..
-rw-rw-rw- 1 user user  281694 2012-06-18 05:43 bsh.jar
-rw-r--r-- 1 user user    6148 2012-06-18 05:48 .DS_Store
-rw-rw-rw- 1 user user    1685 2012-06-18 05:43 hex-string.jar
-rw-rw-rw- 1 user user 2082557 2012-06-18 05:43 jmf.jar
-rw-rw-rw- 1 user user  112249 2012-06-18 05:43 junit.jar
-rw-r----- 1 user user  315582 2012-07-01 15:21 mina-core-1.1.7.jar
-rw-rw-rw- 1 user user  315582 2012-06-18 05:43 mina.jar
-rw-rw-rw- 1 user user  456729 2012-06-18 05:43 mysql-connector.jar
-rw-rw-rw- 1 user user 1118026 2012-07-02 01:49 netty.jar
-rw-rw-rw- 1 user user   13873 2012-06-18 05:43 slf4j.jar
-rw-rw-rw- 1 user user   24538 2012-06-18 05:43 xpp3.jar
-rw-rw-rw- 1 user user  261710 2012-06-18 05:43 xstream.jar

Anyone can help me? 有人可以帮助我吗?

Thanks. 谢谢。

The error indicates that the netty class org.jboss.netty.channel.ChannelFactory cannot be found in your jar file. 该错误表明在jar文件中找不到netty类org.jboss.netty.channel.ChannelFactory

Try including the netty classes in your jar using the zipfileset task: 尝试使用zipfileset任务将netty类包含在jar中:

<jar basedir="${build}" destfile="${jar}" >
  <manifest>
    <attribute name="Main-Class" value="org.darkquest.gs.Server" />
  </manifest>
  <zipfileset includes="**/*.class" src="${lib}/netty.jar" />
</jar>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.lang.NoClassDefFoundError:org / jboss / remoting / InvokerLocator运行时错误 - java.lang.NoClassDefFoundError: org/jboss/remoting/InvokerLocator runtime error java.lang.NoClassDefFoundError:升级JBoss 4.0.5至4.2.2时org / jboss / mq / SpyObjectMessage - java.lang.NoClassDefFoundError: org/jboss/mq/SpyObjectMessage when upgrading JBoss 4.0.5 to 4.2.2 jBoss部署显示java.lang.NoClassDefFoundError - jBoss deployment showed java.lang.NoClassDefFoundError 弹性搜索java.lang.NoClassDefFoundError:org / elasticsearch / transport / Netty3Plugin - Elastic Search java.lang.NoClassDefFoundError: org/elasticsearch/transport/Netty3Plugin 机器人框架maven插件“ Jython-Netty-Client-6” java.lang.NoClassDefFoundError:org / python / netty / util / concurrent / DefaultFutureListeners - Robot framework maven plugin “Jython-Netty-Client-6” java.lang.NoClassDefFoundError: org/python/netty/util/concurrent/DefaultFutureListeners java.lang.NoClassDefFoundError: org/hamcrest/Matchers - java.lang.NoClassDefFoundError: org/hamcrest/Matchers java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing - java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing java.lang.NoClassDefFoundError: org/quartz/SchedulerFactory - java.lang.NoClassDefFoundError: org/quartz/SchedulerFactory java.lang.NoClassDefFoundError:org / hibernate / MappingException - java.lang.NoClassDefFoundError: org/hibernate/MappingException java.lang.NoClassDefFoundError:org / lwjgl / LWJGLException - java.lang.NoClassDefFoundError: org/lwjgl/LWJGLException
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM