2016-03-10 26 views
0

說我從github下載了一個項目,它包含以下文件;如何運行和編譯沒有IDE和幾個包的java項目?

  • 文檔> text.pdf(只有一個文件在裏面,並不重要)
  • SRC
  • README.md

現在讓我們假設在src包括下列文件;

  • 包1
    • class1.java
    • class2.java
    • class3.java
  • 包2
    • class4.java
  • 包3
    • class5.java
    • main.java(這是有一個主要的,需要運行,但依賴於其他一切的一個)僅

現在我有上面的內容,我該如何編譯和運行這個只使用命令行,假設項目沒有錯誤。

+0

我假設你只是使用'javac'編譯'main.java'並用'java'運行它 –

+0

不清楚_why_你不想使用IDE。你可以使用Maven,或者你正在使用_javac_單獨使用它嗎? –

+0

so javac src/package3/main.java? –

回答

1

喜歡的東西:

cd src 
javac package3/main.java 
java package.main 
0
javac package1/*.java 
javac package2/*.java 
javac package3/*.java 

java package3.main 

首先3的javac編譯和生成的3包中的類文件。 最後一行是剛剛運行的類文件。

+0

不需要。 'javac'內置了基本的'make'功能。 –

0

編譯這一切取決於你有什麼其他工具。類似ant的類似工具有助於通過依賴項和源文件集來工作,但是您仍然需要確保您設置CLASSPATH以允許Java解釋器/運行時找到所有這些類文件。

另一種方法是,通常認爲更好的解決方案是創建一個包含所有生成的類文件的jar文件,然後通過執行jar文件來運行該應用程序。 jar文件中的清單將指定主類。

我可以理解,不想安裝IDE只是爲了編譯您計劃運行但不開發的應用程序,但除非您想手動編譯每個文件並更新您的CLASSPATH,否則我建議您使用某種形式的構建工具來簡化流程。

+0

你是指makefile類型的東西嗎?我試着編寫一個makefile,但它似乎沒有工作 –

+0

是的,你需要一個makefile和工具make。 Ant很受Java開發人員的歡迎,並且效果很好。它瞭解Java,但其配置文件是XML,因此與MAKEFILE的純文本相比,編輯有點麻煩。 – querist

0

下面是javacmake類似功能的直觀表示。

enter image description here

注意,因爲一切都是源於同一個源代碼樹,所有你需要做的是javac p4/Main.java,它想通了,它需要編譯的類(例如p1/T.class),其Main需求。它通過首先編譯p1/T.java創建T.class

您還有其他支持,形式爲-sourcepath-classpath。詳情請參閱javac documentation

+0

我不知道它內置...很好 – logger

相關問題