2017-03-15 146 views
1

我試圖編譯.java文件並將它們存儲在名爲bin的子目錄中。然後我想從主目錄運行生成的.class文件。我怎樣才能做到這一點?如何從子目錄編譯並運行java文件

這裏是我的Makefile:

# java compiler 
JCC = javac 

# output directory 
OUTDIR = bin/ 

# compilation flags 
JFLAGS = -g -d $(OUTDIR) 

# default target entry 
default: A.class B.class C.class 

A.class: A.java 
    $(JCC) $(JFLAGS) A.java 

B.class: B.java 
    $(JCC) $(JFLAGS) B.java 

C.class: C.java 
    $(JCC) $(JFLAGS) C.java 

# To start over from scratch, type 'make clean'. 
# Removes all .class files, so that the next make rebuilds them 
clean: 
    $(RM) $(OUTDIR)*.class 

我想要做什麼:

  1. 使
  2. 的Java斌/ A
+0

你有錯誤?如果是這樣,請提供這個 – SilverNak

+1

對於Java而言,有比Make更好的構建工具。看看Gradle,Maven,Ant。 – dnault

回答

2

您必須指定bin目錄作爲JVM的類路徑,使用-cp選項

java -cp bin A 

A作爲類運行的全名。

+0

感謝它的工作:)有沒有辦法在編譯時添加類路徑?我嘗試將JFLAGS變量更改爲''JFLAGS = -g -d $(OUTDIR)-cp bin'',但編譯時遇到錯誤 – Tirafesi

+0

在編譯期間指定的類路徑是用於在編譯期間解析類名稱的類路徑:if你指出'-cp bin',javac希望找到你的源代碼在那個目錄中引用的類。在運行時,你需要指定類的位置,除非它們在工作目錄中是正確的(這是默認的類路徑,如果沒有給出「-cp」則使用)。 – rrobby86

+0

噢,我現在明白了。謝謝 :) – Tirafesi