【发布时间】:2014-04-24 21:34:59
【问题描述】:
我的 java 项目使用了一些 apache 公共库。我希望能够在 unix 中运行我的程序,所以我制作了一个 makefile 来为我编译它。我的项目有 4 个 Java 类和 4 个外部库 (.jars)。在我的目录中,我有四个 .Java 文件和一个名为“lib”的文件夹,其中包含我的 .Jar 文件。这是我的制作文件:
JFLAGS = -g
JC = javac -sourcepath / -classpath lib/commons-httpclient-3.1.jar:lib/commons-io-2.4.jar:lib/commons-codec-1.9.jar:lib/commons-logging-1.1.3.jar
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
CLASSES = \
SubmissionDriver.java \
FileAndArgs.java \
hashConverter.java \
InvalidAgeException.java
default: classes
classes: $(CLASSES:.java=.class)
clean:
$(RM) *.class
这是我的错误消息:不过,我收到了 14 条与实际类文件相关的错误消息。下面是一些例子:
SubmissionDriver.java:74: error: cannot find symbol
public static void httpSend() throws HttpException, IOException{
^
symbol: class HttpException
location: class SubmissionDriver
SubmissionDriver.java:75: error: cannot find symbol
HostConfiguration hf=new HostConfiguration();
^
symbol: class HostConfiguration
location: class SubmissionDriver
SubmissionDriver.java:75: error: cannot find symbol
HostConfiguration hf=new HostConfiguration();
^
symbol: class HostConfiguration
location: class SubmissionDriver
SubmissionDriver.java:77: error: cannot find symbol
PostMethod post = new PostMethod("myurl");
^
它还在这 14 条错误消息的底部声明了这一点:
14 errors
make: *** [SubmissionDriver.class] Error 1
【问题讨论】:
-
也许是时候使用专为 Java 设计的构建器了,比如 Ant、Maven 或 Gradle。这些都与您的 IDE 集成,并且可以由您的 IDE 更新。
-
我确实认为这已经在您的 IDE 中工作了。您确定代码中的
import语句正确吗? -
是的,所有代码在 eclipse 中都能正常工作
-
eclipse 应该有一个 ant、maven 和 gradle 插件,它应该能够为你生成构建器。
-
是的,我现在正在调查,我以前从未使用过 makefile 或那些插件,所以我希望避免它,但似乎这就是我必须做的。跨度>
标签: java makefile external libraries