我已经尝试构建一个Java项目大约两个小时,并且发现了多个资源可以告诉我有关解决我的ClassNotFoundException
异常的方法。他们都没有为我工作。最初,我认为在Eclipse中导出JAR的方式存在错误。但是,当我尝试在IntelliJ IDEA社区中运行代码时,它仍然无法正常工作。
我的代码超过1000行,因此在这里不起作用。但是,令我困惑的是我只有一个文件“ KeyStatistics.java”。如果我尝试使用错误的名称访问文件,则ClassNotFoundException
例外是有意义的,但是这里我只有一个文件。
我使用的是JDK 12,在完全不自定义任何构建设置之后,我以IntelliJ思想构建了项目。我很乐意提供帮助,因为现在我唯一的选择似乎是剖析代码的每个部分,这可能还要花费几个小时。
注意:当我使用Eclipse时,该项目可以正常运行(因为Eclipse在运行时实际上并未构建该项目)。
编辑:,这是整个错误:
错误:找不到或加载主类KeyStatistics
原因:java.lang.ClassNotFoundException:KeyStatistics
答案 0 :(得分:0)
这里有两个选项:
您正在使用Java源文件中的单个文件,这是Java 11中添加的功能。
您正在IDE中运行,并且编译器的输出路径配置错误。
在这种情况下,您需要以“ .java”扩展名指定文件名,例如从包含KeyStatistics.java
的目录中运行(即使该文件指定了程序包名称):
java KeyStatistics.java
如果安装了多个版本,例如,请确保您正在运行Java 11或更高版本。
$JAVA_11_HOME/bin/java KeyStatistics.java
工作目录应该是包含该文件的目录,即使它指定了一个包。例如,如果KeyStatistics.java位于org.stats包中,并且通常将其称为org.stats.KeyStatistics
,则从源运行单个文件时,将使用目录定界符(例如,目录分隔符)运行它。 /
,而不是包定界符.
。
因此,您将从该项目的根目录中使用
$JAVA_11_HOME/bin/java org/stats/KeyStatistics.java
在IntelliJ-IDEA中打开项目结构对话框,并确保Project compiler output
的配置正确。
然后进入“模块”并选择包含您的代码的模块。确保将Compiler output
设置为inherit project path
或指向正确的目录。