我正在尝试编译依赖于外部库的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在当前目录中。
有人可以解释一下我的问题是什么吗?我不明白。
答案 0 :(得分:2)
您应该执行以下操作:
$ javac -cp“ lib / *:”。 Driver.java
答案 1 :(得分:0)
我对-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