我正在尝试使用此命令编译我的 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
谢谢!
最佳答案
类路径旨在包含任何适当目录的包结构的根。因此,编译器当前正在查找 ../../colorCalculator/Model.class
或 ./colorCalculator/colorCalculator/Model.class
,而您实际上只想查找 ./colorCalculator/Model.class
此外,当您使用 OS X 时,您应该使用 : 而不是 ;作为路径分隔符。
所以你应该:
javac -cp ../..:. Application.java
请注意,您实际上根本没有添加 jar 文件的路径 - 如果您确实想要在 ../..
中有一个 jar 文件
javac -cp ../../whatever.jar:. Application.java
关于Java在命令行中编译代码时出现问题: Package does not exist. ..但确实如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31907141/