2017-02-16 163 views
0

我想創建一個腳本,它會自動將工作目錄更改爲我的Java代碼,然後編譯代碼。我能夠直接改變我的路徑,但我無法弄清楚如何在「filename」上調用java編譯器,同時直接從終端將「filename」作爲參數。Java編譯器腳本[Mac]

#!/bin/bash 
    FILE = 「$1」 
    open -a Terminal /Users/Jarvis/Desktop/Codes/Java/CS\ 49J/ 
    javac 「$FILE」 
+0

爲什麼你需要打開終端應用程序? –

+0

因爲編譯後,我希望能夠直接運行編譯的文件。 –

+0

您的腳本會打開一個新的終端窗口,並且不會執行任何操作。你知道bash腳本和子流程是如何工作的嗎? –

回答

0

刪除您的FILE作業中的空格。另外,@ cricket_007提到,你不需要打開終端應用程序,只需更改目錄。

#!/bin/bash 
FILE="$1" 
cd /Users/Jarvis/Desktop/Codes/Java/CS\ 49J/ 
javac "$FILE" 

或者(我在周圍使用變量大括號的習慣):

#!/bin/bash 
FILE="$1" 
WORKING_DIR="/Users/Jarvis/Desktop/Codes/Java/CS\ 49J/" 
javac "${WORKING_DIR}${FILE}" 
+0

我相信這會在編譯後退出終端。如果我想在自動編譯之後直接保留它,讓我執行它,會怎麼樣? –

+0

腳本在子shell中執行,所以你是對的,你不會被留在文件所在的目錄中。 – Matt

+0

也許你可以在編譯後擴展腳本來運行'java -jar program.jar'? – Matt