gpt4 book ai didi

java - 获取包含的 jar 的 NoClassDefFoundError

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:23 25 4
gpt4 key购买 nike

我正在编写一个 java 应用程序并在 linux ec2 服务器上运行它。该程序昨天运行流畅,在我更改并组织了一些文件和包之后,我在执行程序时遇到了这个问题:

我正在使用此命令运行程序:

java -cp . main.Server

并得到以下错误:

Exception in thread "Thread-0" java.lang.NoClassDefFoundError: org/json/JSONObject
at main.Group.<init>(Group.java:28)
at main.Server.run(Server.java:23)
Caused by: java.lang.ClassNotFoundException: org.json.JSONObject
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 2 more

在更改之前我是这样运行程序的:

export CLASSPATH=$CLASSPATH:/home/ec2-user/java-json.jar

在bin文件夹下,命令:

java Server

程序正在运行。由于我将包的默认名称更改为 main,因此我需要使用命令 java -cp 运行它。 main.Server,但我收到上面写的错误。

我还尝试修改 .bash_profile 并添加:

CLASSPATH=$CLASSPATH:/home/ec2-user/java-json.jar
export CLASSPATH

但这并没有帮助。 我的代码没有错误,并且 jar 没有损坏,因为它以前工作过。我应该怎么做才能解决这个问题?

最佳答案

像这样在类路径上指定 jar 文件:

java -cp .:/home/ec2-user/java-json.jar main.Server

如果您的类路径确实在您的 .bash_profile 中正确设置,您还可以:

java -cp .:$CLASSPATH main.Server

关于java - 获取包含的 jar 的 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24586753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com