这是我第一次尝试使用外部java库。为清楚起见,我使用的是Mac笔记本电脑。我在Emacs编码。
这是我做的:
commons-math3-3.3
放入Library/Java/Extension
。 import import org.apache.commons.math3;
Hello.java
但我收到以下错误:
error: package org.apache.commons does not exist
import org.apache.commons.math3;
^
1 error
将外部Java库存储到Mac中的正确方法是什么?我很困惑,为什么我导入一个名称与我刚刚下载的文件夹名称不一致的库。 接近这个的正确方法是什么?
答案 0 :(得分:1)
Library / Java / Extension不适合这个。
Java库依赖项可以放在任何地方,但在典型的Java开发场景中," .jar"文件(以及只有.jar文件)放在项目的子目录中,名为" lib"。
然后,在编译时和运行时,必须使用命令行参数或通过设置CLASSPATH环境变量将这些.jar文件添加到Java的类路径中。
对于非平凡的开发方案,大多数开发人员使用构建工具/依赖关系管理器。 目前流行的工具是Gradle,尽管还有很多Maven和Ant在使用。
参见https://docs.oracle.com/javase/tutorial/deployment/jar/downman.html http://www.gradle.org/和http://maven.apache.org/
答案 1 :(得分:1)
如果你正在使用直接javac,你会告诉它有关带有classpath标志的jar文件。
e.g。
javac -cp your_jar_file.jar YourClass.java
然后,当您尝试运行文件时,您需要确保它已添加到类路径中。
java -cp your_jar_file.jar:some_directory_with_class_files YourClass
正如GreyBeardedGeek上面提到的那样,CLASSPATH变量是一种方法,尽管命令行上的-cp标志也可以工作。
这很快就会变得很麻烦,这也是IDE变得流行的原因。他们为你管理这类事情。虽然并不总是很好,但这就是为什么像Ant和Gradle这样的构建工具存在并且仍然很受欢迎的原因。
如果您只是学习Java,那么使用IDE很不错,因为您可以专注于学习Java而不是使用类路径。