Java在命令行中编译代码时出现问题: Package does not exist. ..但确实如此

标签 java command-line package javac

我正在尝试使用此命令编译我的 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/

相关文章:

java - com.sun.crypto.provider.SunJCE 的 NoClassDefFoundError

javascript - 在java中使用jsoup保存网页src和链接

java - 如果 Android 系统崩溃,文件将变为零字节

java - 如何使用 Spring Boot 向 iOS 应用程序发送推送通知

c# - 如何使用 C# 在 CMD 上显示特殊符号,如花符号?

bash - 如果两个命令行程序共享相同的名称会怎样?

php - 从 php 脚本执行 linux 命令

regex - @EnableFeignClients 包扫描 - spring boot

java - 在纯 Java 中拆分包

r - 在 R 服务器中安装 pdftools 包时出错