【发布时间】:2020-12-30 00:29:12
【问题描述】:
在目录中:
/home/ThinkPinkApp/flocks
我有以下两个源文件:
FlockingInformation.java FlockLists.java
在我拥有的每个源文件的顶部
package home.ThinkPinkApp.flocks
编译文件不会导致任何问题,但是,当我尝试为每个文件运行主要方法时,我收到以下错误:
Error: Could not find or load main class FlockingInformation Caused by: java.lang.NoClassDefFoundError: home/ThinkPinkApp/flocks/FlockingInformation (wrong name: FlockingInformation)
在我的主目录~/ThinkPinkApp/objects 中编译和运行不带 package 关键字的文件很好,不会导致任何问题。当我将package objects 添加到我的主目录中的相同源文件时,虽然我收到了相同的错误。
我尝试在 java 命令中使用 -CLASSPATH 选项,但仍然收到相同的错误。我已阅读有关 java 命令的官方 oracle 文档,但不确定我做错了什么。我的理解是JVM默认在当前目录中查找文件,那么为什么它不能找到/加载这些类呢?我知道 JVM 也使用类路径变量,但我不确定如何访问/更改它。即便如此,我也应该能够使用 -cp 选项手动更改它在哪些目录中显示,对吗?
我还尝试使用java home.ThinkPinkApp.FlockingInformation 运行文件,这会产生类似的错误,减去(wrong name: FlockingInformation) 部分。不过不确定这意味着什么。
任何解释或建议将不胜感激。
【问题讨论】:
标签: java compiler-errors compilation jvm package