Java包执行

时间:2017-03-21 13:04:17

标签: java directory package

这是我的情况: 我有一个文件夹结构:

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>

1 个答案:

答案 0 :(得分:1)

构建文件时,最好有一个构建目录,然后java会将该类放在正确的包布局中。

mkdir build
javac -d build path/to/source/Files.java
java -cp build package.name.Files