Java:如何向makefile添加多个外部库?

标签 java makefile external libraries

我的 java 项目使用了一些 apache commons 库。我希望能够在 unix 中运行我的程序,所以我制作了一个 makefile 来为我编译它。我的项目有 4 个 Java 类和 4 个外部库 (.jar)。在我的目录中,我有四个 .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

最佳答案

  1. Make 并不是一个好的 Java 构建工具。也许尝试 ant (或 Maven, 或 Gradle)
  2. makefile 的结构方式是为每个 java 类调用“javac”命令。如果您的 Java 类相互依赖,这将不起作用
  3. 确保此行之前有一个制表符

    $(JC) $(JFLAGS) $*.java

关于Java:如何向makefile添加多个外部库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23280314/

相关文章:

java - Apache Ignite 持久性问题/警告

c - 这个makefile的起点在哪里

makefile - 如何通过 Makefile 将日期回显到文件中?

ruby-on-rails - 从外部表单接收POST

java - 在 Struts 2 jQuery 网格中 select 的格式化程序中获取所选值

Java super 和 this 关键字

java - Android C2DM AUTHENTICATION_FAILED 注册时出错

c - NDK-C 文件中 .a 文件的使用

android - 安装在 sdcard 上的应用程序的 .apk 位置在哪里?

python - 在 PyCharm Professional 4 中添加外部库