我尝试使用此命令编译我的Java代码(OS X Yosemite):
javac -cp "../../;./colorCalculator;" Application.java
但是我得到以下错误(其中包括依赖于此的错误):
Application.java:4: error: package colorCalculator does not exist
import colorCalculator.Model;
^
Application.java:5: error: package colorCalculator does not exist
import colorCalculator.View;
^
Application.java:6: error: package colorCalculator does not exist
import colorCalculator.Controller;
我添加了两个类路径。 1." .jar"的路径该应用程序依赖于此。 2. Application.java从中导入的包。
目录结构如下:
├── colorcalculator
│ ├── Application.java
│ └── colorCalculator
│ ├── Controller.java
│ ├── Model.java
│ └── View.java
└── colorcalculator.zip
我从colorcalculator目录运行命令,因为它是Application.java和colorCalculator包的所在位置。我做错了什么?
最后,如果您愿意,可以参考代码。它来自教授的网站,所以我很确定它是正确的:code
谢谢!
答案 0 :(得分:0)
类路径旨在包含任何适当目录的包结构的 root 。因此,当您真正希望它寻找../../colorCalculator/Model.class
./colorCalculator/colorCalculator/Model.class
或./colorCalculator/Model.class
此外,当您使用OS X时,您应该使用:而不是;作为路径分隔符。
所以你应该:
javac -cp ../..:. Application.java
请注意,您根本没有添加到jar文件的路径 - 如果您在../..
中有一个实际需要的jar文件
javac -cp ../../whatever.jar:. Application.java
答案 1 :(得分:0)
Classpath包含包层次结构的根。因此,既然您将包名称命名为colorCalculator,那么该路径的根目录不是' ./ colorCalculator',但实际上只是'。'。
所以试试-cp" ../../;。"