Java问题编译命令行中的代码:包不存在…但它确实存在
我正在尝试使用以下命令编译Java代码(OS X Yosemite): 但我发现以下错误(其中包括与此相关的其他错误): 我添加了两个类路径。 1.此应用程序所依赖的“.jar”的路径。 2.Application.java从中导入的包 目录结构如下所示:Java问题编译命令行中的代码:包不存在…但它确实存在,java,command-line,package,javac,Java,Command Line,Package,Javac,我正在尝试使用以下命令编译Java代码(OS X Yosemite): 但我发现以下错误(其中包括与此相关的其他错误): 我添加了两个类路径。 1.此应用程序所依赖的“.jar”的路径。 2.Application.java从中导入的包 目录结构如下所示: ├── colorcalculator │ ├── Application.java │ └── colorCalculator │ ├── Controller.java │ ├── Model.java │
├── colorcalculator
│ ├── Application.java
│ └── colorCalculator
│ ├── Controller.java
│ ├── Model.java
│ └── View.java
└── colorcalculator.zip
我从colorcalculator目录运行该命令,因为Application.java和colorcalculator包就在这里。我做错了什么
最后,如果您愿意,请提供代码以供参考。这是一个教授的网站,所以我很确定这是正确的:
谢谢 类路径意味着包含任何适当目录的包结构的根。因此,编译器当前正在查找
。/../colorCalculator/Model.class
或/colorCalculator/colorCalculator/Model.class
,而您实际上只希望它查找/colorCalculator/Model.class
此外,在使用OSX时,应该使用:而不是;作为路径分隔符
因此,你应该:
javac -cp ../..:. Application.java
请注意,实际上您根本没有向jar文件添加路径-如果您在。/..
中有一个jar文件,那么您实际上需要它
javac -cp ../../whatever.jar:. Application.java
类路径包括包层次结构的根。因此,由于您将包命名为colorCalculator,因此该路径的根不是“./colorCalculator”,实际上只是“.”
因此,请尝试-cp“../../;”将您的
/colorculator
更改为仅
。嗯,我已经尝试了这些命令(修改为我的类),但它们仍然不起作用。1.我在类路径周围添加了引号。2.我指定了jar本身,但仍然收到相同的原始错误消息。@newbie:您不需要引号-这就是我删除它们的原因。最重要的变化是使用“公正”。而不是模型。你用的是什么操作系统?如果是Unix,则应使用:而不是;作为路径分隔符。我使用的是OSXYosemite@newbie:那么这就是另一个问题了。将编辑我的答案。哦,对不起。应该把它放在我原来的帖子里!
javac -cp ../..:. Application.java
javac -cp ../../whatever.jar:. Application.java