2012-01-18 60 views
0

這是一個非常基本的問題,但我無法在任何地方找到答案。我對Java完全陌生。在Mac上編譯和運行Java程序

在github上有一個Java程序,我試圖在我的Mac上運行。相關文檔沒有提供關於編譯或運行代碼的任何信息。我不想更詳細地披露我試圖運行的具體程序。

該程序包含多個.java文件和一個classmexer.jar文件用於跟蹤內存使用情況。還有一個子文件夾cern,其中包含最終包含.class文件的其他子文件夾。沒有makefile。

我已經下載了所有的源代碼作爲tar.gz文件,並將其解包爲~/codeDirectory/。當我嘗試從這個目錄中編譯

$ javac *.java

$ javac A.java

(其中A.java是第一類,程序調用),我收到幾十編譯錯誤。這段代碼在其他地方顯然編譯成功,所以我不確定要做什麼。

出現的第一個錯誤是

A.java:5: cannot access cern.colt.function.DoubleFunction 
class file for cern.colt.function.DoubleFunction not found 
    cern.jet.random.AbstractDistribution.makeDefaultGenerator(); 
             ^
./B.java:4: package com.javamex.classmexer does not exist 
import com.javamex.classmexer.*; 
^ 
./B.java:180: cannot find symbol 
symbol : variable MemoryUtil 
location: class B 
     long noBytes = MemoryUtil.deepMemoryUsageOf(hp); 
        ^

我懷疑是某處有一個不正確或不正確的具體路徑,但我一直沒能找到它。

在此先感謝您的任何幫助疑難解答。

+1

如果不包含它們,您可能需要添加依賴項,例如'colt'庫。如果存在POM文件,則可以在使用maven時自動執行此操作。 – 2012-01-18 21:36:32

回答

0

我試圖運行的程序不完整,沒有包含兩個依賴項的源代碼(包括上面編譯器標記的colt)。感謝Anony-Mousse提出這個選擇。安裝所有必要的源代碼解決了這個問題;開發者也更新了這些文件。

4

如果您從github下載了一個Java程序,幾乎可以肯定的是它附帶了一個用於Apache Ant的build.xml,或者一個用於Apache Maven的pom.xml,或者一些其他文件以供其他文件使用構建工具。通常,github上的代碼將會有文檔告訴你使用什麼工具以及如何使用它。

+0

沒有* .xml文件或關於編譯的自述文件中的任何信息。只是這些.java文件和一個jar文件。 – Sarah 2012-01-18 21:35:49

+2

我會嚴重懷疑在該狀態下遺留在github上的任何代碼的質量。所以你必須學會​​爲自己使用ant或maven(或者Eclipse或者IntelliJ)。 – bmargulies 2012-01-18 21:37:21

+0

這是開發人員的第一次提交,所以聽起來好像我應該聯繫他。我會研究你提到的課程。謝謝。 (當我從開發者處獲得更多信息時,會接受你的回答。) – Sarah 2012-01-18 21:39:25