gpt4 book ai didi

java - 如何使用 IntelliJ 编译 Java 项目并在终端中运行 (NoClassDefFoundError)

转载 作者:行者123 更新时间:2023-11-30 05:59:48 27 4
gpt4 key购买 nike

我喜欢 IntelliJ,因为它易于使用且具有出色的 IDE 功能。但是,由于我的项目的性质,我想在 IntelliJ 中构建所有内容后通过终端运行相关的 .class 文件。我的结构如下所示:

out/
|
|-production/
| |
| |-AILab2/
| |
| |-TTT/
| | |--Main.class
| | |--Constants.class
| | |--Deadline.class
| | |--pipe|
| | |--etc...
| |
| |-TTT3
| |--Constants.class
| |--Deadline.class
| |--etc...
src
|
|-TTT
| |--Main.java
| |--Constants.java
| |--Deadline.java
| |--etc...
|
|-TTT3
|--Constants.java
|--Deadline.java
|--etc...

当我进入终端运行时,我执行以下操作:

~/IdeaProjects/AILab2/out/production/AILab2/TTT$ java Main init verbose < pipe | java Main > pipe
Error: Could not find or load main class Main
Caused by: java.lang.NoClassDefFoundError: TTT/Main (wrong name: Main)
Error: Could not find or load main class Main
Caused by: java.lang.NoClassDefFoundError: TTT/Main (wrong name: Main)

我在网上搜索过,但不明白此错误的原因。我以前也以同样的方式运行过项目,但这一次,它不起作用。感谢您的帮助。

编辑:更改终端命令以包含 TTT 会产生相同的消息:

$ java TTT.Main init verbose < pipe | java TTT.Main > pipe
Error: Could not find or load main class TTT.Main
Caused by: java.lang.ClassNotFoundException: TTT.Main
Error: Could not find or load main class TTT.Main
Caused by: java.lang.ClassNotFoundException: TTT.Main

最佳答案

类的名称必须包含包 (TTT.Main),并且您必须在父目录(包含 TTT 文件夹的目录)中调用 Java。

请放心:它总是这样工作的。 “以前是这样工作的”的唯一解释是:那时你的类并不在一个不同的包中!

除此之外,您还必须了解如何在类路径中找到类。从这里开始阅读 https://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html例如。

关于java - 如何使用 IntelliJ 编译 Java 项目并在终端中运行 (NoClassDefFoundError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52457194/

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