2015-06-20 97 views
1

我是一位.NET開發人員,他認爲mono對我的項目來說太麻煩了,不適合。所以我開始學習Java ......如何在Java中引用外部庫?

我現在面臨的一個問題是不知道如何添加對外部庫的引用。就像你在.NET中添加對dll的引用一樣。

我意識到這可能會因IDE而異...我現在使用Eclipse。

我也想知道Java/Eclipse是否有像NuGet for .NET一樣的包管理器?

在此先感謝。

+0

您需要學習JNI ... –

+0

太棒了......謝謝我現在就看看這個! –

+0

看看http://stackoverflow.com/questions/2824515/how-to-add-external-library-properly-in-eclipse – SSH

回答

2

使用maven

它類似於(和我的意見更好)的NuGet。 它是基於一個公共倉庫,而你管理一個XML文件

你(類似.NET項目)的每個項目的引用將有pom.xml文件,該文件將是這樣的:

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>my-module</artifactId> 
    <version>1</version> 
</project> 

而在這個文件中,你管理引用(又名依賴)

舉例來說,如果你想添加這個依賴 - http://mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.4

,您將需要修改pom.xml像這樣:

<project> 
    ... 
    <dependencies> 

    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.4</version> 
    </dependency> 

    </dependencies> 
    ... 
</project> 

,這就是它(可能是eclipse插件會替你查字典,你將被設置)

一件事...

Iv'e也.net約1.5年前搬到java,我可以誠實地建議您使用intellij idea,而不是日食

  • 完全支持行家,需要0配置
  • 最好的學習曲線(這從字面上問你從哪個IDE,你來自和適應的鍵盤快捷鍵!)
  • 根本真棒
+0

使用Maven!這比NuGet多一點工作,但它非常棒! –

3

使用Gradle

Gradle比Maven輕得多,而且非常靈活。實際上,配置文件是Groovy代碼!沒有詳細的XML,您可以添加自定義功能等。我用它來創建一個大型的網絡應用程序,並且從Maven(我以前曾經廣泛使用過)開發時間很短。它使用Maven存儲庫獲取依賴關係,並且可以在多語言項目中使用,以防您曾想過這樣做。Gradle也是Android的默認構建工具。

下面是一個例子配置(從this粘貼,未經測試!):

apply plugin: 'java' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2' 
    testCompile group: 'junit', name: 'junit', version: '4.+' 
} 

如果您使用的是Eclipse,只需添加一行apply plugin: 'eclipse'在頂部和搖籃會產生Eclipse項目文件與Eclipse完美結合(我多年沒有使用過Eclipse,但是我相信也有Eclipse插件可以監視Gradle文件的變化並在運行中更新Eclipse配置)。如果您決定切換,Gradle還與IntelliJ集成。

+0

Grazie Mille Giovanni,我真的很喜歡Gradle的聲音,但是現在我要去看看Maven,因爲英國的工作網站現在對Maven有更多的合同職責。不過,我一定會考慮下一個Gradle,因爲我認爲它可以在不久的將來取代Maven。 –

+0

老實說,我很驚訝,任何人仍然使用Maven。 XML配置是一個噩夢,它非常不靈活。無論如何,一旦你理解了Maven概念,稍後將Maven項目遷移到Gradle很容易(我不能說相反)。 –

+0

我已經把Java放下了一段時間,專注於C++。我正在製作一個多核心愛好項目,它將使用C++作爲核心(用於性能)。我想使用Java來託管一個Web服務,它將報告C++應用程序的狀態。當我重訪時,我會看看Maven和Gradle。 –