2017-02-16 126 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