这是我的情况: 我有一个文件夹结构:
C:\Users\user\Desktop\JavaTraining\Chapter3\examples.
示例也是一个文件夹。现在,我在Chapter3文件夹中有一个包含语句Calculator.Java
的文件名package Chapter3;
。因此,从命令行我将JavaTraining
目录中的文件编译为javac Chapter3\Calculator.java
,编译后我看到生成了一个文件Calculator.class
。但是当我从java Chapter3.Calculator
目录运行命令JavaTraining
时。它给我一个error: Could not find file or load main class Chapter3.Calculator
。
然后,我在名为Chapter3
的{{1}}中创建了一个子文件夹,并将examples
复制到examples文件夹中,尝试编译并执行文件,将第3章视为根文件夹(执行命令)来自Chapter3目录)。没有错误,文件已经执行。
任何人都可以解释一下为什么会发生这种情况或背后的原因,我疯了......
Calculator.java
只是一个类计算器,主函数试图从两个变量的printum函数中找到一个总和。
我查看了Calculator.java
中提供的建议
根据以上所述,它是语法错误(尝试执行文件的方式)或设置http://stackoverflow.com/questions/18093928/what-does-could-not-find-or-load-main-class-mean
环境变量。
我甚至尝试PATH and CLASSPATH
查看我的echo %CLASSPATH%
变量是否设置为当前目录。当我从CLASSPATH
目录执行echo命令时,它确实显示了.
。
当我尝试将Chapter3文件夹作为根目录时,文件没有执行,但是当我在第3章中创建子文件夹并将第3章作为根目录时,它被执行,可能是什么原因或我做错了什么,
这是带输出的命令行:
JavaTraining
Calculator.java文件:
C:\Users\vikas\Desktop\JavaTraining>javac Chapter3\Calculator.java
C:\Users\vikas\Desktop\JavaTraining>java Chapter3.Calculator
Error: Could not find or load main class Chapter3.Calculator
C:\Users\vikas\Desktop\JavaTraining>cd Chapter3
C:\Users\vikas\Desktop\JavaTraining\Chapter3>javac examples\Calculator.java
C:\Users\vikas\Desktop\JavaTraining\Chapter3>java examples.Calculator
The sum is 30
C:\Users\vikas\Desktop\JavaTraining\Chapter3>
答案 0 :(得分:1)
构建文件时,最好有一个构建目录,然后java会将该类放在正确的包布局中。
mkdir build
javac -d build path/to/source/Files.java
java -cp build package.name.Files