2014-12-07 75 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並且不會使用類路徑。

相關問題