我正在尝试编译依赖于外部库的Java程序。该程序在IDE中编译时没有错误。在终端中编译时,我面临编译器无法识别我编写的代码。所有文件都在同一目录中。我正在使用Makefile。
以下是javac调用以及由此产生的错误。所有Java和Jar文件都在当前目录中。
$ javac -cp "./*" Driver.java
Driver.java:22: error: cannot find symbol
DataSetProcessor processor = new DataSetProcessor();
^
symbol: class DataSetProcessor
location: class Driver
Driver.java:22: error: cannot find symbol
DataSetProcessor processor = new DataSetProcessor();
^
symbol: class DataSetProcessor
location: class Driver
Driver.java:29: error: cannot find symbol
HashMap<Integer, Dealer> map = processor.getDealerVehicleRelationship(dataSetID, vehicleIDsList);
^
symbol: class Dealer
location: class Driver
3 errors
Dealer.java和DataSetProcessor.java位于当前目录中。
有人可以解释一下我的问题是什么吗?我无法理解。
您应该执行以下操作:
$ javac -cp“lib / *:” Driver.java
我对-cp的使用是错误的。我正在使用Mac;我不确定是不是这个原因。
最后的编译器调用现在是:
$ javac -cp lib/commons-io-2.6.jar:lib/json-20180813.jar:. Driver.java
并且运行该程序的调用是:
$ java -cp lib/commons-io-2.6.jar:lib/json-20180813.jar:. Driver