2012-06-18 22 views
0

我有一個NetBeans Java項目。如何在不使用IDE的情況下使用外部庫編譯java文件(Netbeans etc ..)?

該項目(src文件夾)由6個.java文件組成。 該項目還採用了外置庫library.jar和阿帕奇百科全書(日誌,配置等)

所有Java文件(編譯時),通過外部類中使用variouus 罐子文件。

Netbeans生成一個構建xml文件。

<?xml version="1.0" encoding="UTF-8"?> 
<project name="CityVisit" default="default" basedir="."> 
    <description>Builds, tests, and runs the project CityVisit.</description> 
    <import file="nbproject/build-impl.xml"/> 

</project> 

它refears到nbproject文件/ build-impl.xml中但文件裏也沒有提及library.jar既不其它罐子。

我的問題是,如果我嘗試編譯javac * .java它不編譯,只是打印一長串錯誤(可能是因爲它找不到外部庫)。

大多數錯誤是這樣的:

**can't find symbol <name> ** 

哪裏是在罐子的外部庫之一incluided類/對象的名稱。

我該怎麼辦?我的目標是能夠在另一臺機器上編譯我的代碼,而無需使用像Eclipse,Netbeans等IDE。

據我所知,解決方案是使用ant來製作構建文件並部署它,但實際上我應該怎麼做?

非常感謝您提供任何提示。 問候

回答

1

的參訪方式是使用Maven來定義你的依賴和b培養你的項目。有更多信息可用@http://maven.apache.org/

+0

謝謝。我應該如何在Maven項目中轉換我的Netbeans Java項目? (Netbeans有一個「新的Mavel項目」,但我不明白該怎麼辦) – dragonmnl

+0

選中此項: http://stackoverflow.com/questions/5495213/converting-a-netbeans-project-to-a-maven- enabled-project –

+0

我剛看到鏈接。看起來沒問題(我會稍後再試)。只是一個問題:當我有一個Mavel項目時,我需要做什麼來在另一臺計算機上編譯項目? – dragonmnl

1

使用javac -cp,你可以告訴編譯器到哪裏尋找外部罐:

javac -cp /lib/123.jar:/lib/abc.jar yourMainClass.java 

注意我是如何給路徑罐子,不只是名稱(除非它們重新在同一文件夾作爲你自己的代碼

一旦它的編譯,運行:

java -cp .:/lib/123.jar:/lib/abc.jar yourMainClass 
+0

但有沒有一個「通用方式「?我的意思是:給所有罐子的目錄。此外,生成的.class文件被其他類使用,應該在沒有任何附加參數的情況下運行 – dragonmnl

-1

請使用雙引號(")&分號(;)圍繞庫的列表。

  • 超過一個庫用分號分隔庫:

    javac -cp "/lib/lib1.jar;/lib/lib2.jar" yourMainClass.java 
    
  • 對於只有一個庫:

    javac -cp "/lib/lib1.jar" yourMainClass.java 
    
相關問題