Java servlet java.lang.NoClassDefFoundError: org/json/JSONObject
Java servlet java.lang.NoClassDefFoundError: org/json/JSONObject
我有一个非常简单的 servlet,当我添加 JSON 库并尝试 运行 它时,我有 java.lang.NoClassDefFoundError: org/json/JSONObject
(没有 json 库一切正常美好的)。
我正在这样编译(在 ubuntu 中):
javac -classpath ":./libs/json-20160810.jar:/usr/local/tomcat/lib/servlet-api.jar:." *.java && mv *.class /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/
它编译没有任何错误,它发生在 运行 时间。
我没有为此使用任何 IDE。
Servlet 运行正在 docker:
docker 文件:
FROM tomcat:7
RUN apt-get update
RUN apt-get install default-jdk --yes
COPY . /src
WORKDIR /src/
RUN mkdir -p /usr/local/tomcat/webapps/ROOT/WEB-INF/classes
RUN javac -classpath ./libs/json-20160810.jar:/usr/local/tomcat/lib/servlet-api.jar:. *.java && mv *.class /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/
RUN cp web.xml /usr/local/tomcat/webapps/ROOT/WEB-INF
当您 运行 应用程序时,您还需要在类路径中提供 json 库。最简单的方法是将它们放在 tomcat 的 lib 文件夹中
将 json-20160810.jar 放入 tomcat
的库中
最好添加一行以将 JSON jar 复制到您的应用程序的 WEB-INF/lib 而不是 Tomcat 库,因为您的应用程序使用它,而不是 tomcat 本身
我有一个非常简单的 servlet,当我添加 JSON 库并尝试 运行 它时,我有 java.lang.NoClassDefFoundError: org/json/JSONObject
(没有 json 库一切正常美好的)。
我正在这样编译(在 ubuntu 中):
javac -classpath ":./libs/json-20160810.jar:/usr/local/tomcat/lib/servlet-api.jar:." *.java && mv *.class /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/
它编译没有任何错误,它发生在 运行 时间。
我没有为此使用任何 IDE。
Servlet 运行正在 docker:
docker 文件:
FROM tomcat:7
RUN apt-get update
RUN apt-get install default-jdk --yes
COPY . /src
WORKDIR /src/
RUN mkdir -p /usr/local/tomcat/webapps/ROOT/WEB-INF/classes
RUN javac -classpath ./libs/json-20160810.jar:/usr/local/tomcat/lib/servlet-api.jar:. *.java && mv *.class /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/
RUN cp web.xml /usr/local/tomcat/webapps/ROOT/WEB-INF
当您 运行 应用程序时,您还需要在类路径中提供 json 库。最简单的方法是将它们放在 tomcat 的 lib 文件夹中 将 json-20160810.jar 放入 tomcat
的库中最好添加一行以将 JSON jar 复制到您的应用程序的 WEB-INF/lib 而不是 Tomcat 库,因为您的应用程序使用它,而不是 tomcat 本身