我正试图从终端启动“程序D”,
终端“sh server.sh”中的命令给出了以下错误
Starting Alicebot Program D. Exception in thread "main"
java.lang.NoClassDefFoundError: org/alicebot/server/net/AliceServer
Caused by: java.lang.ClassNotFoundException:
org.alicebot.server.net.AliceServer at
java.net.URLClassLoader$1.run(URLClassLoader.java:202) at
java.security.AccessController.doPrivileged(Native Method) at
java.net.URLClassLoader.findClass(URLClassLoader.java:190) at
java.lang.ClassLoader.loadClass(ClassLoader.java:306) at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at
java.lang.ClassLoader.loadClass(ClassLoader.java:247)
我的Server.sh文件
ALICE_HOME=.SERVLET_LIB=lib/servlet.jar
ALICE_LIB=lib/aliceserver.jar
JS_LIB=lib/js.jar
# Set SQL_LIB to the location of your database driver.
SQL_LIB=lib/mysql_comp.jar
# These are for Jetty; you will want to change these if you are using a different http server.
HTTP_SERVER_LIBS=lib/org.mortbay.jetty.jar:lib/javax.xml.jaxp.jar:lib/org.apache.crimson.jar
PROGRAMD_CLASSPATH=$SERVLET_LIB:$ALICE_LIB:$JS_LIB:$SQL_LIB:$HTTP_SERVER_LIBS
java -classpath $PROGRAMD_CLASSPATH -Xms64m -Xmx64m org.alicebot.server.net.AliceServer $1
答案 0 :(得分:2)
这可能是问题吗?
ALICE_HOME=.SERVLET_LIB=lib/servlet.jar
我发现another question使用了类似的server.sh
,其中有两行:
ALICE_HOME=.
SERVLET_LIB=lib/servlet.jar
在您的情况下SERVLET_LIB
未正确设置(或根本没有设置),嵌入的等号可能会在稍后打开PROGRAMD_CLASSPATH
。