gpt4 book ai didi

java - 从命令行运行程序时找不到类

转载 作者:行者123 更新时间:2023-12-01 21:35:22 25 4
gpt4 key购买 nike

这是我的项目的结构:

MyProject
-lib
-mp3agic-0.9.0.jar

-src
-com.company
-Main.java

在Main中,我导入mp3agic的内容:

导入com.mpatric.mp3agic.*;

从 MyProject 中,我使用以下方法编译该类:

javac -cp“lib/*”src/com/company/Main.java

从 MyProject/src,我尝试运行该程序:

java -cp 。 com/公司/主要

我收到以下错误:

线程“main”中的异常 java.lang.NoClassDefFoundError: com/mpatric/mp3agic/InvalidDataException

显然,jdk在运行类时无法从lib文件夹中找到依赖项,尽管编译时不会出现此问题。我猜该命令的语法有问题,但我就是找不到它。

你能帮我吗?

编辑:我解决了问题,将 lib 文件夹移动到 src 下,然后运行:

C:\MyProject\src>javac -cp "lib/*"com/company/Main.java

C:\MyProject\src>java -cp .;"lib/*"com/company/Main

现在,代码可以编译并执行,没有任何问题。

但是,如果我将 lib 保留在项目根目录下,则会发生以下情况:

C:\MyProject>javac -cp "lib/*"src/com/company/Main.java

C:\MyProject>java -cp .;"lib/*"src/com/company/Main

错误:无法找到或加载主类 src.com.company.Main

为什么?

最佳答案

你应该使用 maven 或 gradle,否则你必须说出你使用的是哪个控制台,以及哪个操作系统 - 如果你不知道控制台是什么,你首先必须在搞乱之前先用谷歌搜索一下。直接javac - 但如果你坚持:

对于 Linux、OSX、任何类 UNIX:

javac -cp ".:lib/mp3agic-0.9.0.jar"src/com/company/Main.java

对于 Windows:

javac -cp“.;lib/mp3agic-0.9.0.jar”src/com/company/Main.java

在Windows下运行:

java -cp .;lib\mp4agic-0.9.0.jar com.company.Main

您可能需要使用斜杠 (/) 而不是反斜杠,具体取决于您使用的控制台。或者尝试“/”或“\”,看看什么适合您。

如果您仍然遇到找不到类的异常,那么问题与类路径或 java 命令无关,而是与您的代码有关(很难说,没有看到代码)。

关于java - 从命令行运行程序时找不到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58804098/

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