2014-12-07 74 views
0

这是我第一次尝试使用外部java库。为了清晰起见,我使用的是Mac笔记本电脑。我在Emacs编码。
这里是我做过什么:在哪里存储Apache Commons Math以及如何实际导入它?

  • 我从this url downlaoded的二进制文件。
  • 然后我把解压后的文件夹commons-math3-3.3转换为Library/Java/Extension
  • 然后我说在 的Hello.java
  • import import org.apache.commons.math3;但我得到了以下错误:

    error: package org.apache.commons does not exist import org.apache.commons.math3; ^ 1 error

什么是外部Java库,存储到我的Mac正确的方法是什么?我很困惑为什么要导入一个名称与我刚下载的文件夹名称不一致的库。 解决这个问题的正确方法是什么?

+0

您使用的是IDE吗?如果不是IDE,那么您如何构建Java代码? – Bill 2014-12-07 17:26:50

+0

我正在使用Emacs – mynameisJEFF 2014-12-07 17:29:12

+0

Emacs并不自行编译Java。你是否在命令行上使用某种emacs扩展或仅使用javac? – Bill 2014-12-07 17:35:16

回答

1

Library/Java/Extension不适合做这个。

Java库依赖关系可以放在任何地方,但在典型的java开发场景中,“.jar”文件(只有.jar文件)放在项目的子目录中,名为“lib”。

然后,在编译时和运行时,这些.jar文件必须通过命令行参数或通过设置CLASSPATH环境变量添加到Java的类路径中。

对于不平凡的开发场景,大多数开发人员使用构建工具/依赖管理器。 当前流行的工具是Gradle,尽管仍然有很多Maven和Ant在使用。

https://docs.oracle.com/javase/tutorial/deployment/jar/downman.htmlhttp://maven.apache.org/

1

如果您在使用直线上升的javac,你会告诉它与类路径标志的jar文件。

例如

​​

然后,当您尝试运行文件时,您需要确保它已添加到类路径中。

java -cp your_jar_file.jar:some_directory_with_class_files YourClass 

作为CLASSPATH变量如上所述通过GreyBeardedGeek是做到这一点的一种方式,尽管在命令行上的-cp标志也可以。

这可能会很快变得麻烦,这就是为什么IDE变得流行。他们为你管理这类事情。尽管并不总是很好,但这就是为什么像Ant和Gradle这样的构建工具存在并仍然很流行的原因。

如果您只是在学习Java,那么使用IDE是很好的,因为您可以专注于学习Java并且不会使用类路径。

相关问题