gpt4 book ai didi

java - 在终端中运行具有多个 .java 文件的 java 项目(内部描述了多次尝试)

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

我一直在使用 OpenJDK 在 IntelliJ IDEA Community Edition 14 IDE 中进行编码练习。

该项目分为 4 个 .java 文件,全部位于同一个包中。我的最终目标是在终端/bash 中运行它(我使用 System.console().readLine() ,它在 IDE 的控制台中运行得不太好)。

我尝试导航到这 4 个文件所在的目录(它们都位于同一目录中)并尝试:

javac -classpath . BibliotecaApp.java Book.java BookManager.java LibraryDB.java

这会很好地创建 4 个相应的 .class 文件。Main 位于 bibliotecaApp.java/class 中,因此我尝试通过以下方式运行它:

java BibliotecaApp

但我收到错误

Exception in thread "main" java.lang.NoClassDefFoundError: BibliotecaApp (wrong name: com/twu/biblioteca/BibliotecaApp)

加上大约 13 行细节。

现在谷歌搜索这个错误似乎是一个类路径问题,这就是我陷入困境的地方。从我读过的地方来看,使用echo $PATH给了我:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

这仍然来自上面的 .java 文件的目录。这条路对我来说毫无意义。我不知道它是什么或它做什么,甚至不知道类路径是什么!有很多关于设置类路径的资源,但它们对我没有帮助,因为我不知道它的用途。

这对我来说是一条死胡同。我尝试使用 IDEA 的 Build Artifacts 创建一个 .jar,如 HERE 所示。 。它创建了一个 .jar 文件,但是当我导航到该目录并尝试通过以下方式运行它时:

java -jar  biblioteca_jar

我明白了

Error: Invalid or corrupt jarfile biblioteca_jar

另一个问题是,在文件资源管理器中,文件实际上显示为 biblioteca.jar,但该目录上的 ls 显示 biblioteca_jar。这正常吗?

代码位于我的 GitHub 上(如果有帮助的话) https://github.com/botagar/twu-biblioteca-JohnGeddes

最佳答案

根据您的编译器步骤,更改此设置

java BibliotecaApp

java -cp . BibliotecaApp

这会将当前目录添加到 java 运行时环境的类路径中。另请参阅 Oracle 技术说明 Setting the Class Path .

jar 文件是 zip 的一种,并且应该具有 .jar 扩展名。所以这个

java -jar  biblioteca_jar

应该是

java -jar  biblioteca.jar

您可以使用任何 zip 存档阅读器检查该文件是否有效。包括jar本身,

jar tvvf biblioteca.jar

编辑

根据您的以下评论,

cd ~/Documents/ThoughtWorks Uni/TWU_Biblioteca-master/src/ 

然后

java -cp . com.twu.biblioteca.BibliotecaApp

关于java - 在终端中运行具有多个 .java 文件的 java 项目(内部描述了多次尝试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27575974/

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